🐶 DB Schema / ERD
1️⃣ DB Schema
데이터베이스의 구조(개체, 속성, 관계)와 제약 조건에 대한 정의, 메타 데이터라고함
DBMS 주어진 설정에 따라 데이터베이스 스키마 생성
자료를 저장, 조회, 삭제, 변경 할 때 DBMS는 자신이 생성한 데이터 베이스 스키마를 참조
2️⃣ Schema 3계층
참조
⛔️ 외부(서브) Schema = 사용자뷰
각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의
하나의 데이터베이스 시스템에는 여러개의 외부 스키마가 존재할 수 있으며
외부 스키마를 여러개의 응용 프로그램, 사용자가 공용 할 수 있다.
사용자는 SQL을 이용하여 DB를 사용
응용 프로그래머는 C,JAVA등 언어를 사용해 DB에 접근
⛔️ 개념 Schema = 전체적인 뷰
모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조직 전체의 데이터베이스로 하나만 존재
개체간의 관계와 제약 조건, 데이터베이스의 접근 권한, 보안 및 무결성 규칙에 관한 명세를 정의
단순히 Schema라고 하면 개념 스키마를 의미
⛔️ 내부 Schema = 저장 Schema
물리적인 저장장치와 밀접한 계층
데이터베이스에 저장될 레코드의 물리적인 구조를 정의
저장 데이터 항목의 표현방법, 내부 레코드의 물리적 순서 등을 나타낸다.
시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마이다.
3️⃣ ERD(Entity Relationship Diagram)
테이블간의 관계를 설명해주는 다이어그램
현 프로젝트의 DB구조를 파악하기 쉽다
핵심 - Entity,Relationship,Attribute
⛔️ Entity(개체)
관리하고자 하는 정보의 실체
데이터베이스를 설계할때, 테이블을 Entity로 정의 할 수 있다.
Entity는 하나 이상의 식별자를 가져야한다(식별자를 가지지 않으면 Entity라고 할 수 없다.)
⛔️ Attribute (속성)
Entity의 구성 요소이다.
데이터 타입을 명시해주어야 한다.
⓵ Key Attribute
중복되지 않는 고유한 값을 가진 Attribute, 객체를 식별할 수 있게 된다.
② Composite Attribute
독립적인 Attribute들을 모여서 생성된 Attribute
실 주소 ex)서울특별시, 강동구, OOO,OO아파트, 각각 Attribute -> 복합 Attribute
③ Multi-Valued Attribute
하나의 Attribute가 여러개의 값을 가지는 Attribute를 의미
한식,중식,양식 등의 음식의 장르로 공통적인 존재할 수 있다.
④ Derived Attribute
다른 Attribute가 갖고있는 값으로 유도된 속성을 의미
시험점수의 총점수를 total이라는 속성의 시험 점수는 Attribute, Attribute 점수의 총합
⛔️ Relationship
Entity간의 관계를 의미
Entity간의 관계 명칭을 기록한다.
🫥 선택 사항을 표시
학생과 교실 Entity가 있을때 교실입장에서는 배치를 할수도 안할수도 있다.
학생 입장에서는 교실을 필수적으로 배치 받아햐 한다.
교실은 여려명의 학생을 받을수 있으나, 학생은 하나의 교실에 배치해야 한다.
⛔️ 관계 형태(Cardinality)
⓵ 1:1 관계
양쪽 모두 단 하나씩 존재하는 경우.주민번호는 하나의 주민번호만 존재
② 1:N 관계
일대다/다대일 관계 한교실에는 여려명의 학생이 배치되어있다.
1 : One, N : Many => primary key를 Attribute로 추가된다. 학생 번호를 붙여준다고 생각
③ N:M 관계
다대다 관계, 양쪽 모두 하나 이상과 연관될 수 있다.
한사람이 여러개의 상품을 주문할 수 있고, 상품도 여려명의 사람에게 보내 줄수 있다.
N : Many, M : Many => 두 entity의 primary key를 가져와 하나의 relation을 생성
상품 주문이라는 테이블을 만들어 상품을 주문한 사람과 상품의 관계를 맺고 있으면 된다.