DB Schema / ERD

JBoB·2023년 1월 23일
0

🐧스키마 (Schema)란?

  1. Schema 는 DB의 구조와 제약 조건에 관한 전반적인 명세를 정의한 메타데이터의 집합이다.

⇒ 메타데이터 : 데이터에 대한 데이터!! 어떤 목적을 가지고 만들어진 데이터

  1. 데이터를 구성하는 개체(Entity), 속성(Attribute), 관계(Relationship) 및 데이터 조작 시

데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 정의한다.

개체(Entity) : 데이터로 표현하려고 하는 객체

속성(Attribute) : 개체가 갖는 속성

관계(Relationship) : 개체와 개체 사이의 연관성

  1. 스키마는 사용자의 관점에 따라 외부 스키마,개념 스키마, 내부 스키마로 나눠진다.

🐤 Schema 의 특징

  • 데이터 사전에 저장된다.
  • 특정 데이터 모델을 이용해서 만들어진다.
  • 시간에 따라 불변인 특성을 가진다.
  • 데이터의 구조적 특성을 의미하며, 인스턴스에 의해 규정된다.

인스턴스
해당 클래스의 구조로 컴퓨터 저장공간에서 할당된 실체를 의미한다. 여기서 클래스는 속성과 행위로 구성된 일종의 설계도이다. [출처](https://ko.wikipedia.org/wiki/%EC%9D%B8%EC%8A%A4%ED%84%B4%EC%8A%A4_(%EC%BB%B4%ED%93%A8%ED%84%B0_%EA%B3%BC%ED%95%99))

🐤 Schema의 3계층

[출처](https://coding-factory.tistory.com/216)

스키마는 하나의 데이터베이스를 사용자의 관점에 따라 세개의 단계로 나눌수 있다.

  • 사용자 관점에서 논리적 구조를 기술한 외부 스키마
  • 물리적인 저장장치의 면에서 논리적인 구조를 기술한 내부 스키마
  • 조직체나 기관의 관점에서 논리적 구조를 기술한 개념 스키마

논리적 구조란?

구성 요소 간 상호 관계를 보여주면서 솔루션 구현에 필요한 소프트웨어 구성 요소를 식별

🐥외부 스키마 (사용자 관점에서 기술함)

  • 실제로 존재하는 데이터들을 어떻게 구조하고 어떻게 배치하여 사용자들에게 보여줄 것인가..!
  • 외부스키마는 전체 데이터베이스의 어느 한 논리적인 부분으로 볼 수 있기 때문에 곧 서브스키마라고도 한다.
  • 하나의 데이터베이스에 여러 개의 외부 스키마가 존재할 수 있으며 사용자가 공용으로 사용할수 있다.
  • 같은 데이터 베이스에 대해서도 서로 다른 관점을 정의 할수 있도록 허용한다.
  • 관계형 데이터베이스를 이용하여 데이터베이스를 쉽게 사용할 수 있다.

🐥개념 스키마 (전체적인 뷰)

  • 모든 시스템과 사용자들이 필요로 하는 데이터를 통합한 조직 전체의 데이터베이스 구조를 정의 한것이다.
  • 개념 스키마는 단일로만 존재한다.
  • 개체간의 관계와 제약 조건을 나타내고 데이터베이스의 접근 권한, 보안 및 무결성 규칙에 관한 명세를 정의한다.
  • 데이터베이스 관리자에 의해 구성된다.

🐥내부 스키마(저장 스키마)

  • 물리적 저장장치의 입장에서 본 데이터베이스 구조, 물리적인 저장장치와 밀접한 계층이다.
  • 개념 스키마를 물리적으로 구현하기 위한 방법
  • 저장될 데이터 항목의 내부 레코드 형식, 물리적 순서로 나타낸다.

🐧 ERD란?

: **개체-관계 모델. 테이블간의 관계를 보여주는 그림(Entity-Relationship Diagram)**프로젝트에서 사용되는 DB의 구조를 한눈에 파악할 수 있다는 장점을 가진다.

직사각형, 다이아몬드, 타원형 및 연결선과 같은 정의된 기호 집합을 사용하여 Entity, Relationships 및 해당 속성의 상호 연결성을 나타낸다.개체를 명사로, 관계를 동사로 사용하여 문법 구조를 반영한다.

⇒ Entity : 테이블을 구성하는 객체 구성성분 ex)상품의 Entity,id,상세설명,가격 등으로 구성되어 있다.

어떤 시스템인지에 따라 Entity는 사람, 장소, 사건(이벤트), 오브젝트가 될 수도 있다.

🐤 ERD 사용법!

[출처](https://velog.io/@aaron19965/DB-Schema%EC%99%80-ERD)

1:1 관계(일대일)

관계가 있는 데이터의 값이 서로 한개의 관계를 갖는것

1:n 관계(일대다)

관계가 있는 한쪽 데이터의 하나의 값이 다른 데이터의 여러 값을 참조하고 있는것

n:m 관계(다대다)

관계가 있는 양쪽 데이터의 값들이 서로 1:N 관계를 갖는것

🐤ERD 작성방법!

ERD의 표기법

개체(Entity) - 사각형으로 표시

  • 사물 또는 사건으로 정의
  • 사각형으로 표기
  • 사각형 안에는 개체명을 기입하며, 단수형으로 명명
  • 가능한 대문자로 개체명을 사용
  • 유일한 단어로 사용

속성(Attribute) - 동그라미로 표시

  • 개체가 가지고 있는 요소 또는 성질
  • 속성은 선으로 연결된 동그라미로 표기
  • 속성명은 단수형으로 명명
  • 속성명은 개체명과 동일한 명칭으로 사용하지 않음
  • 속성 값이 null 인지 고려

관계(Relationship) - 마름모형으로 표시

  • 관계 표시는 대부분 마름모형으로 표기하지만 표기법에 따라 다양하게 표현 가능

  • 1:1, 1:n, n:m 등을 파악해야함
    이 표기법들을 사용하여1. 모든 엔티티들을 정의

  • 엔티티는 특정 다이어그램에서 한 번만 나타나야한다

  • 모든 엔티티에 대해 사각형을 만들고 이름을 적절하게 지정한다

  1. 엔티티 간 관계들을 정의
  • 선을 사용하여 연결하고 관계를 설명하는 중간에 다이아몬드를 추가
  1. 속성들을 추가
  • 쉽게 이해할 수 있도록 의미있는 속성이름을 지정

참고:

https://www.hedleyonline.com/ko/blog/스키마에-대한-모든것-2022/

https://iingang.github.io/posts/DB-schema/#스키마schema란

https://velog.io/@kjhxxxx/DataBase-ERD란

profile
간절하고 치열하게 살자

0개의 댓글