SQL 첫걸음 - 8장 데이터베이스 설계(1/3)
1. 데이터베이스 설계
데이터베이스를 설계한다는 것
데이터베이스의 스키마 내에 테이블, 인덱스, 뷰 등의 데이터베이스 객체를 정의하는 것. 스키마 내에 정의한다는 뜻에서 ‘스키마 설계’라 불리기도 함. 테이블 설계의 주된 내용은 테이블 이름이나 열, 자료형을 결정하는 것. 테이블 간의 관계를 생각하며 여러 테이블을 정의하고 작성.
논리명과 물리명
물리명은 CREATE TABLE에 지정하는 테이블 이름이나 열 이름. 논리명은 설계상의 이름.
자료형
금액이나 개수처럼 수치 데이터만 다룰 수 있는 열은 수치 자료형으로, 제조번호처럼 알파벳도 다루어야 한다면 문자열형으로 지정 (수치형을 문자열형으로 변환하는것은 문제가 되지 않지만 문자열형을 수치형으로 변환하는 경우엔 에러가 발생하기도 하므로) VARCHAR형으로 지정할 수 있는 최대 크기는 기껏해야 수천 바이트. 조금 큰 파일을 그대로 VARCHAR형의 열에 저장하면 쉽게 용량을 넘김. 이러한 경우엔 LOB(Large Objetct)형을 사용. LOB형은 큰 데이터를 다루는 자료형이지만 인덱스를 지정할 수 없다는 제약이 있음.기본키로 지정할 열이 생각나지 않는 경우 자동증가 열을 사용해 기본키를 지정할 수 있음. 자동증가 열은 INSERT할 경우 번호를 자동으로 증가시켜주는 열. MySQL의 경우는 열을 정의할 때 AUTO_INCREMENT를 지정함. AUTO_INCREMENT로 지정한 열은 PRIMARY KEY 또는 UNIQUE로 유일성을 지정해야 함.
2. ER다이어그램
ER다이어그램은 테이블 간의 연계를 나타낼 때 사용하는 도식.ER의 E는 개체를 뜻하는 ‘Entity’의 약자이며 R은 ‘Relationship’의 약자. 즉, ER다이어그램은 개체 간의 관계를 표현한 것.
출처 : SQL 첫걸음
엔티티 즉 개체는 테이블 또는 뷰를 의미. 사각형으로 표기. 사각형 상단에는 개체이름을 적고 사각형 안에는 개체의 속성을 표기. 여기서 속성은 테이블의 열을 의미. 기본키가 되는 열부터 차례로 기술하며, 열 이름은 주로 논리명으로 표기. 개체와 개체가 서로 연계되는 경우에는 선으로 이어서 표현. 연계를 표기할 때는 서로 몇 개의 데이터 행과 연관되는지, 즉 몇 대 몇의 관계를 가지는지 숫자나 기호로 표시. (카디널리티 또는 다중도라 함)
=> 가장 기본적 3가지 : 일대일(1:1) / 일대다(1:多) / 다대다(多:多)
ER 다이어그램의 연계는 데이터베이스에서 외부참조제약(외부키 제약)으로 지정하는 경우가 있음.
출처 : https://smilejh.tistory.com/