DB Schema / ERD

박선우·2023년 1월 26일
0

CS 스터디

목록 보기
27/53
post-thumbnail

🐶 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을 생성
  • 상품 주문이라는 테이블을 만들어 상품을 주문한 사람과 상품의 관계를 맺고 있으면 된다.
profile
코린이 열심히 배우자!

0개의 댓글