0. 데이터베이스의 기본
0. 데이터베이스의 기본
데이터베이스는 일정한 규칙, 규약을 통해 구조화되어 저장된 데이터의 모음이다. DB를 제어 관리하는 통합 시스템을 DBMS라고 하며 데이터들은 특정 DBMS마다 정의된 쿼리 언어를 통해 삽입, 수정, 조회 등이 가능하다. 또한 실시간 접근과 동시 공유가 가능한 장점이 있다.
1. 엔티티
엔티니는 사람, 장소, 물건, 사건, 개념 등 여러 개의 속성을 지닌 명사를 의미한다. 회원이라는 엔티티가 있다고 치면 회원은 이름, 아이디, 주소 등의 속성을 갖는다.
약한 엔티티와 강한 엔티티
혼자서는 존재하지 못하면 약한 엔티티이고 누군가를 종속하게 하면 강한 엔티티이다.
2. 릴레이션
릴레이션은 DB에서 정보를 구분하여 저장하는 기본 단위이다. 엔티티에 관한 데이터를 DB는 릴레이션 하나에 담아 관리한다. 릴레이션은 관계형 DB에서는 테이블 이라고 하며 NoSQL에서는 컬렉션이라고 한다.
3. 속성
속성은 릴레이션에서 관리하는 구체적이며 고유한 이름을 갖는 정보이다. 차라는 엔티티가 있으면 차 넘버, 바퀴 수, 차종 등이 있다.
4. 도메인
도메인이란 릴레이션에 퐇마된 각각의 속성들이 가질 수 있는 값의 집합이다. 성별이라는 속성이 있다면 이 속성이 가질 수 있는 값은 남, 여 라는 집합이 된다.
5. 필드와 레코드
필드는 속성의 네임을 뜻하고 레코드는 그 속성들의 값이다.
필드 타입
필드는 타입을 갖는데 이 타입은 숫자, 날짜, 문자 등이 있다.
- 숫자 타임 : TINYINT, SAMLLINT, MEDIUMINT, INT, BIFINT
- 날짜 타입 : DATE, DATETIME, TIMESTAMP
- 문자 타입 : CHAR, VARCHAR, TEXT, BLOB, ENUM, SET
6. 관계
DB에 테이블들 간의 관계가 정의되어 있다. 이러한 관계를 관계 화살표로 나타낸다.
1:1 관계
유저당 유저 이메일은 한개 씩 있을 경우 1:1 관계가 된다. 1:1 관계는 테입르을 두개의 테이블로 나눠 테이블의 구조를 더 이해하기 쉽게 해준다.
1:N 관계
한 유저당 여러개의 상품을 장바구니에 넣을 수 있는 경우 1:N 관계다. 한 개체가 다른 많은 개체를 포함하는 관계다.
N:M 관계
학생과 강의의 관계를 정의하면 N:M이다. 학생도 여러 강의를 들을 수 있고 강의도 여러 학생을 포함할 수 있다.
7. 키
테이블 간 관계를 더 명확하고 인덱스를 위해 설정된 장치다.
기본키
기본키는 PK라 불리며 유실성과 희소성을 만족한다.
외래키
외래키는 FK라고도 하며 다른 테이블의 기본키를 참조하는 값이다.
후보키
후보키는 기본키가 될 수 있는 후보들이며 유실성과 최소성을 동시에 만족하는 키이다.
대체키
대체키는 후보키가 두 개 이상일 경우 어느 하나를 기본키로 지정하고 남은 후보키들을 말한다.
슈퍼키
슈퍼키는 각 레코드를 유일하게 식별할 수 있는 유일성을 갖춘 키이다.