Schema
는 DB의 구조와 제약 조건에 관한 전반적인 명세를 정의한 메타데이터의 집합이다.⇒ 메타데이터 : 데이터에 대한 데이터!! 어떤 목적을 가지고 만들어진 데이터
개체(Entity)
, 속성(Attribute)
, 관계(Relationship)
및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 정의한다.
⇒개체(Entity)
: 데이터로 표현하려고 하는 객체
⇒속성(Attribute)
: 개체가 갖는 속성
⇒관계(Relationship)
: 개체와 개체 사이의 연관성
⇒ 인스턴스
해당 클래스의 구조로 컴퓨터 저장공간에서 할당된 실체를 의미한다. 여기서 클래스는 속성과 행위로 구성된 일종의 설계도이다. [출처](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))
[출처](https://coding-factory.tistory.com/216)
스키마는 하나의 데이터베이스를 사용자의 관점에 따라 세개의 단계로 나눌수 있다.
외부 스키마
내부 스키마
개념 스키마
⇒ 논리적 구조란?
구성 요소 간 상호 관계를 보여주면서 솔루션 구현에 필요한 소프트웨어 구성 요소를 식별
: **개체-관계 모델. 테이블간의 관계를 보여주는 그림(Entity-Relationship Diagram)**
프로젝트에서 사용되는 DB의 구조를 한눈에 파악할 수 있다는 장점을 가진다.
직사각형, 다이아몬드, 타원형 및 연결선과 같은 정의된 기호 집합을 사용하여 Entity, Relationships 및 해당 속성의 상호 연결성을 나타낸다.개체를 명사로, 관계를 동사로 사용하여 문법 구조를 반영한다.
⇒ Entity : 테이블을 구성하는 객체 구성성분 ex)상품의 Entity,id,상세설명,가격 등으로 구성되어 있다.
어떤 시스템인지에 따라 Entity는 사람, 장소, 사건(이벤트), 오브젝트가 될 수도 있다.
[출처](https://velog.io/@aaron19965/DB-Schema%EC%99%80-ERD)
1:1 관계(일대일)
관계가 있는 데이터의 값이 서로 한개의 관계를 갖는것
1:n 관계(일대다)
관계가 있는 한쪽 데이터의 하나의 값이 다른 데이터의 여러 값을 참조하고 있는것
n:m 관계(다대다)
관계가 있는 양쪽 데이터의 값들이 서로 1:N 관계를 갖는것
ERD의 표기법
개체(Entity) - 사각형으로 표시
- 사물 또는 사건으로 정의
- 사각형으로 표기
- 사각형 안에는 개체명을 기입하며, 단수형으로 명명
- 가능한 대문자로 개체명을 사용
- 유일한 단어로 사용
속성(Attribute) - 동그라미로 표시
- 개체가 가지고 있는 요소 또는 성질
- 속성은 선으로 연결된 동그라미로 표기
- 속성명은 단수형으로 명명
- 속성명은 개체명과 동일한 명칭으로 사용하지 않음
- 속성 값이 null 인지 고려
관계(Relationship) - 마름모형으로 표시
관계 표시는 대부분 마름모형으로 표기하지만 표기법에 따라 다양하게 표현 가능
1:1, 1:n, n:m 등을 파악해야함
이 표기법들을 사용하여1. 모든 엔티티들을 정의엔티티는 특정 다이어그램에서 한 번만 나타나야한다
모든 엔티티에 대해 사각형을 만들고 이름을 적절하게 지정한다
- 엔티티 간 관계들을 정의
- 선을 사용하여 연결하고 관계를 설명하는 중간에 다이아몬드를 추가
- 속성들을 추가
- 쉽게 이해할 수 있도록 의미있는 속성이름을 지정
참고:
https://www.hedleyonline.com/ko/blog/스키마에-대한-모든것-2022/