DB Schema / ERD

정희준·2023년 4월 11일
0
post-thumbnail

DB Schema란?

  1. DB의 구조와 제약조건에 대한 명세를 기술한 메타데이터의 집합이다
  2. 데이터베이스를 구성하는 개체(Entity), 속성(Attribute), 관계(relationship) 및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 정의
  3. 사용자의 관점에 따라 외부 스키마, 개념 스키마, 내부 스키마로 나눠진다.

외부 스키마( = 사용자 뷰)
사용자가 보는 개인적인 DB에 관한 것
사용자나 응용프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 모습으로 구조를 정의한 것
전체 데이터베이스안의 데이터 중 사용자가 사용하려는 한 논리적인 부분으로 볼 수 있으므로 서브 스키마(Sub Schema)라고도 한다.
하나의 데이터베이스 시스템에는 여러개의 외부 스키마가 존재할 수 있고, 하나의 외부 스키마를 여러개의 응용 프로그램이나 사용자가 공용할 수도 있다.
같은 데이터베이스에 대해서도 서로 다른 관점을 정의할 수 있도록 허용한다.
일반 사용자는 SQL을 이용하여 DB를 쉽게 사용할 수 있다.
외부 스키마는 개념스키마의 부분집합에 해당한다.

개념 스키마( = 전체적인 뷰)
데이터베이스의 전체적인 논리적 구조로서, 시스템 전체를 볼 수 있는 스키마로 단 하나만 존재한다.
개체간의 관계와 제약 조건을 나타내고, 데이터베이스의 접근 권한, 보안 및 무결성 규칙에 관한 명세를 정의한다.
데이터베이스 파일에 저장되는 데이터의 형태를 나타낸다. 단순히 스키마라고 할 땐, 개념 스키마를 의미한다
기관이나 조직체의 관점에서 데이터베이스를 정의한 것이다.
데이터베이스 관리자(DBA)에 의해서 구성된다.

내부 스키마( = 저장 스키마)
물리적 저장장치의 입장에서 본 데이터베이스 구조, 물리적인 저장장치와 밀접한 계층이다.
(개념 스키마를 디스크 기억장치에 물리적으로 구현하기 위한 방법을 기술)
실제로 데이터베이스에 저장될 레코드의 물리적인 구조를 정의, 저장 데이터 항목의 표현방법, 내부 레코드의 물리적 순서등을 나타낸다.
시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마


ERD(Entity-Relationship Diagram)란?

위 처럼 테이블간의 관계와 테이블의 컬럼을 보여주며 프로젝트의 DB 구조를 한 눈에 알아 볼 수 있다

ERD는 정규화 과정을 진행 후 작성하는 것이 좋으며
테이블간의 관계를 설정해 주어야 한다

관계의 종류에는 세가지가 존재하며
1:1관계
테이블간의 데이터가 서로 하나씩 의 관계를 가지는 것을 의미한다
ex) 중고상품 하나에 중고 상품을 거래하는 위치

1:N관계
일대다 관계라 불리며 한쪽 테이블의 데이터가 관계를 가진 테이블의 여러값을 참조하는 것을 의미한다
ex) 상품 하나에 여러개의 이미지를 가지지만 그 이미지는 해당 상품에만 들어 감

N:M관계
다대다 관계라 불리며 관계를 가진 양쪽 테이블들이 서로 일대다의 관계를 가지고 있는것을 의미한다
ex) 상품 하나에 여러개의 태그를 가질 수 있으며 태그도 여러개의 상품에 들어 갈 수 있다
N:M관계일 경우 중간 테이블을 만들어 서로 1:N의 관계를 갖도록 그려 주어야 함!


참조

https://velog.io/@aaron19965

profile
같이 일하고 싶은 사람이 되어보자! 다시 시작하는 개발 블로그.

0개의 댓글