본문 바로가기

IT지식38

[데이터베이스] DB Index 를 공부해보자. DB Index의 목적은 RDBMS에서 검색 속도를 높이기 위한 기술이다. Table의 Column을 색인화하는 것이다. 이것을 통해 Table의 Record를 Full scan 하지 않아도 되고 색인화 된 Index 파일 검색으로 검색 속도를 향상시킬 수 있다. DB Index의 과정은 Table을 생성하면, MYD, MYI, FRM 3개의 파일이 생성된다. FRM: 테이블 구조가 저장되어 있는 파일 MYD: 실제 데이터가 있는 파일 MYI: Index 정보가 들어가 있는 파일 Index를 사용하는 경우 비어져 있던 MYI 파일이 생성되고 사용자가 Select 쿼리로 Index를 사용하는 Column을 탐색 시, MYI 파일의 내용을 검색한다. DB Index를 생성시 발생하는 단점으로는 .mdb 파일.. 2022. 12. 15.
[데이터베이스] 정규화에 대해 공부해보자 정보처리기사 공부를 하면서 정규화에 대해서 조금 공부했었지만 다시 한번 공부하며 정리해보도록 하자. 두부이결다조! 정규화(Normalization)란? 정규화의 기본 목표는 테이블 간에 중복된 데이터를 허용하지 않는다는 것이다. 중복을 허용하지 않음으로써 무결성을 유지할 수 있고 DB의 저장 용량 역시 줄일 수 있다. 이를 단계별로 구분하여 정규형이 높아질수록 이상현상은 줄어들게 된다. 정규화의 장점: 데이터베이스 변경 시 이상 현상을 제거할 수 있다. 정규화된 데이터베이스 구조에서는 새로운 데이터 형의 추가로 인한 확상 시, 그 구조를 변경하지 않아도 되거나 일부만 변경해도 된다. 데이터베이스와 연동된 응용 프로그램에 최소한의 영향만을 미치게 되어 응용프로그램의 생명을 연장시킬수 있다. 정규화의 단점:.. 2022. 12. 15.
[데이터베이스] DB 트랜잭션에 대해 공부해보자. 우선, 트랜잭션이란? 데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위이다. 상태를 변화시킨다는 것은 SQL 질의어를 통해 DB에 접근한다는 것이다. (Ex: Select, Insert, Delete, Update) 하나의 트랜잭션 설계를 잘 만드는 것이 데이터를 다룰 때 많은 이점을 가져다준다. 좋은 트랜잭션을 만들기 위해선 트랜잭션의 4가지 특성을 알아야한다. (ACID) 원자성(Atomicity) : 트랜잭션이 DB에 모두 반영되거나, 혹은 전혀 반영되지 않아야 한다. 일관성(Consistency) : 트랜잭션의 작업 처리 결과는 항상 일관성 있어야 한다. 독립성(Isolation) : 둘 이상의 트랜잭션이 동시에 병행 실행되고 있을 때, 어떤 트랜잭션도 다른 트랜잭션 연산에 끼어들 수 없.. 2022. 12. 14.
[데이터베이스] ORM에 대해 공부해보자 ORM을 알아보기 이전에 영속성에 대해 먼저 알아보자. 영속성(Persistence)이란? 데이터를 생성한 프로그램이 종료되더라도 사라지지 않는 데이터의 특성 영구적인 객체 : 메모리 상의 데이터를 파일 시스템, 관계형 DB 혹은 객체 DB 등을 활용하여 영구적으로 저장하여 영속성을 부여한다. 데이터를 데이터베이스에 저장하는 방법들 1) JDBC (Java에서 사용) 2) Spring JDBC (Ex: JdbcTemplate) 3) Persistence Framework(Ex: Hibernate, Mybatis) ORM이란? Object-Relational Mapping, 객체와 관계형 DB의 데이터를 자동으로 매핑해주는 것을 말한다. 객체 지향 프로그래밍은 클래스를 사용하고, 관계형 DB는 테이블을 사.. 2022. 12. 14.