본문 바로가기

데이터베이스/Oracle

스키마

※ 릴레이션

릴레이션(relation)은 행과 열로 구성된 테이블을 말한다.

릴레이션은 스키마와 인스턴스로 이루어진다.

스키마(schema)는 관계 데이터베이스의 릴레이션이 어떻게 구성되는지, 어떤 정보를 담고 있는지에 대한 기본적인 구조를 정의한다. 테이블에서 스키마는 테이블의 헤더(header)에 나타나며 각 데이터의 특징을 나타내는 속성, 자료 타입 등의 정보를 담고 있다.

인스턴스(instance)는 정의된 스키마에 따라 테이블에 실제로 저장되는 데이터의 집합을 의미한다.

 

스키마는 데이터베이스를 구성하는 데이터 개체(Entity), 속성(Attribute), 관계(Relationship) 및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 정의한다.

 

관계선이 많은 테이블 = 핵심 테이블 = 중앙에 위치
관계선 읽을 줄 알아야함

 

엔터티 = 행 = 튜플 = 인스턴스(들의 집합)
엔터티타입 = 테이블 = 엔터티(엔터티타입을 엔터티라고 부르는 때도 있다.)
행수 : 카디널리티

 

※ 부모엔터티와 자식엔터티
JOBS 직무 VS EMPLOYEES 사번 테이블 중 먼저 추가되어야할 테이블?
기본 정보인 부서/직무가 등록되어있다면 기본 정보를 활용해서 사원 만들 수 있다.


빨강색) 지역정보가 먼저 추가되있어야 그 지역정보를 departments에서 참조
굵은 글씨로 있는것 pk =중복되지않는 식별자 역할을 담담하는 컬럼
부모(엔터티)의 pk를 자식(엔터티)의 일반컬럼으로 참조 = 점선(비식별자 관계)

 

 

직무 테이블에 SA_REP 행이 추가되어있으면 그 행의 정보를 사원의 월급 같은거 검색할 때 사용 가능
먼저 자료 추가해야하는 쪽 : 부모역할

먼저 자료 추가 나중에 확인
부모엔터티 자식엔터티
(jobs) (employees)
(locations) (departments)
(departments) (employees)

비식별자관계(점선) : 부모엔터티의 PK를 자식엔터티의 일반컬럼으로 참조
주식별자관계(실선) : 부모엔터티의 PK를 자식엔터티의 PK으로 참조
참여자수(카디넬리티)    

 

부모쪽이 먼저 자료가 추가되야한다.
열쇠모양 = PK, 중복되지않는 식별자역할 담당 컬럼
부모의 P key를 자식의 일반 컬럼으로 참조 : 점선
두 테이블의 관계 : 비식별자 관계

부모의 P key를 자식의 P Key으로 참조 : 실선
두 테이블의 관계 : 주식별자 관계

 

참여자수(카디넬리티)
 1:1 관계
 1:M 관계
 M:N 관계 논리적으로만 존재. 이건 1:다 다:1로 해소시켜야한다.

 

필수참여여부
 필수참여 : Not null 없다
 선택참여 : Not Null ○
동그라미가 있는쪽 : 선택참여
없는 쪽 : 필수참여

 

한 직무를 담당하는 사람은 없을 수도 있다
한 사람의 경력은 여러 건이고 없을 수도 있다,
한 사원이 담당하는 직무는 반드시 하나.
경력은 사원 정보를 가지고 있다.
한 부서는 한 지역에만 있다, 부서에는 지정보가 없을 수도 있다

한 테이블에 자료 다 넣어두면 유지보수 어려움, 저장해야할 자료가 중복되어 저장할 양 멀어서 메모리 많이 차지
한 테이블에 자료 다 있을때

정규화 : 테이블 쪼개기

'데이터베이스 > Oracle' 카테고리의 다른 글

데이터베이스 개념, 컴퓨터에 데이터를 저장하는 방법  (0) 2023.08.22
무결성 제약조건 예제  (0) 2023.08.22
무결성 제약조건  (0) 2023.08.22
데이터 제어 언어  (0) 2023.08.22
서브쿼리 예제  (0) 2023.08.22