[1] 데이터 모델
(1) 데이터 모델
1. 데이터 모델의 정의
-정의 : 데이터베이스 설계 과정에서 데이터의 구조를 논리적으로 표현하기 위해 사용되는 도구
2. 데이터 모델의 종류
- 논리적 데이터 모델 : 개념 데이터 모델을 상세화하여 논리적인 데이터의 집합, 관리, 항목,관계를 정의한 모델 구조
- 개념적 데이터 모델 : 속성으로 기술된 개체 타입간의 관계를 이용하여 데이터 집합을 정의하고 관계를 정의한 모델 구조
(2) 데이터 모델링
1. 데이터 모델링의 정의
- 정보 시스템을 구축하기 위해 사용되는 데이터를 분석하여 제약조건을 체계적으로 정의하고 개념적인 도구를 이용하여 간결하고 이해하기 쉽게 표현한 도구
2. 데이터 모델링의 3단계
- 1 단계 : 개념적 데이터 모델링
- 추상화 수준이 높은 수준을 형상화 하기위해 사용하며 조직, 데이터 요구사항 을 찾고 분석하는 과정
- 2단계 : 논리적 데이터 모델링
- 개념적 데이터 모델을 레코드 타입의 논리적 구조로 변환하는 과정
- 키, 속성, 관계 등을 정확하게 표현하기 위한 동작
- ERD 모델을 표현한 개념적 데이터 모델을 데이터베이스로 구현하기 위한 중간단계
- 3단계 : 물리적 데이터 모델링 = 데이터 구조화
- 논리적 구조가 물리적 저장장치에 저장될수 있도록 데이터 구조로 변환하는 과정
(3) 데이터 모델의 구성요소
1. 구조
- 데이터 베이스의 정적 성질
- 데이터베이스에 표현될 개체 타입
- 개체와 개체의 관계의 구조
2. 연산
- 데이터 베이스의 동적 성질
- 개체 인스턴스 처리 작업을 명세하고 상태 변환을 표현한다
3. 제약조건
- 데이터베이스에 허용되는 개체 인스턴스에 대한 논리적 제약을 명세한 조건
-데이터 조작에 대한 규정
[2] 개념적 모델링 > ERD
(1) 개체 관계 모델 ERD의 정의
1. ERD 정의
- 개념적 데이터 모델링에서 사용하는 E-R-Diagram 엔티티-관계 다이어그램 설계
- 개체 타입과 관계 타입을 통해 현실 세계를 표현한 모델
2. ERD 모델 표현식
기본형식 | 표현 형태 | 의미 |
개체 집합 | ![]() |
데이터 수집의 대상이 되는 실제 사물 (장소이름 , 사건명 , 물건 등) |
속성 | ![]() |
개체의 구조를 나타내는 특성 |
관계 | ![]() |
개체와 개체의 관계에 대한 연관성의 의미 |
연결 | ![]() |
개체와 개체를 연결한 것을 표현한것 |
[3] 논리적 데이터 모델링 종류
(1) 논리적 데이터 모델의 정의
-ERD 모델을 표현한 개념적 데이터 모델을 데이터베이스로 구현하기 위한 중간단계
(2) 논리적 데이터 모델링 종류
1. 관계 데이터 모델
고유번호 | 이름 | 부서 | 내선 |
101 | 김알파 | 경영팀 | 1234 |
102 | 이베타 | 영업팀 | 1235 |
103 | 오메가 | 인사팀 | 1236 |
- 릴레이션 (테이블 표) 집합으로 데이터베이스를 표현한다 .
- 릴레이션의 구성
- 릴레이션 스키마 = 관계 스킴
- 릴레이션 인스턴스
- 애트리뷰트 (속성) : 테이블 필드 ;
- 투플 : 레코드 ; 테이블 표의 행
- 차수 : 애트리뷰트 갯수
- 타디널리티 : 투플 갯수
- 관계 데이터 모델 종류 : 개체 릴레이션 , 관계 릴레이션
- DBMS 종류 : 오라클 ORACLE , 마이크로소프트 MS-SQL , 시스템 아르 System R
2. 망 데이터 모델 = 네트워크형 데이터 모델
- 링크로 데이터 베이스를 표현한다
- 일반 그래프 성질이 있다
- 레코드들은 오너 1 : 멤버 n 의 관계이다
- DBMS 종류 : DBTG , IDMS , TOTAL
3.계층 데이터 모델
- 링크로 데이터 베이스를 표현한다
- 각 레코드가 계층적 트리형태로 표현
- 1 : n의 부자 관계로 형성된다
-사이클이 허용되지 않고 상하 레벨 관계이다
- DBMS 종류 : IMS , SYSTEM 2000
[4] 관계 데이터 모델 이해하기
(1) 관계 데이터 모델 의 개요
- 관계 데이터 베이스 시스템
(2) 릴레이션
1. 릴레이션의 정의
- 릴레이션 = 테이블 표
2. 릴레이션의 구성
- 릴레이션 스키마 = 관계 스킴
- 릴레이션 인스턴스
- 애트리뷰트 (속성) : 테이블 필드 ;
- 투플 : 레코드 ; 테이블 표의 행
- 차수 : 애트리뷰트 갯수
- 타디널리티 : 투플 갯수
3. 릴레이션의 특성
- 튜플의 유일성 : 중복이 없다
- 튜플의 무순서성 : 튜플 간에는 순서가 상관없다
- 속성의 무순서성 : 애트리뷰트(속성) 간에는 순서가 상관없다
- 속성의 원자값 : 애트리뷰트(속성)은 논리적으로 분해할수 없는 원자값을 가진다
(3) 키 Key
1. 키 Key 의 정의
- 튜플들을 유일하게 구분하는 애트리뷰트(속성)값
- 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 다른 튜플들과 구별할수 있는 유일한 기준
-애트리뷰트(속성) 값으로 튜플을 구분함
- 제약조건 : Not Null 개체 무결성 , 참조 무결성
2. 키 Key의 종류
- 슈퍼키 : 개체집합에서 개체를 식별할수 있는 속성 , 유일성
- 후보키 : 슈퍼키의 부분집합 , 유일성, 최소성
- 기본키 PK : 후보키 중에 선택되는 키 , 유일성, Not Null(개체 무결성) 제약조건을 가진 값 (주민번호)
- 대체키 : 후보키 중에 선택되지 않은 키
- 외래키 FK : 릴레이션 r(R) , 릴레이션 s(S) 에서 r이 참조하는 s 기본키가 r에서 사용되는 속성 , 참조무결성 제약조건에 따라 r.FK는 반드시 s.PK에 존재하는 값이 있어야함
※ 유일성 : 1개의 키 값으로 유일하게 튜플을 식별할수 있어야함
최소성 : 키를 구성한 속성을 하나 제거하면 1개의 키값으로 유일하게 식별되면 안된다. 최소의 속성으로 구성해야한다
[5] 릴레이션의 관계 연산
(1)릴레이션의 관계 대수
1. 관계 대수의 정의
- 릴레이션을 처리하기 위한 연산의 집합
- 연산의 피연산자 = 릴레이션
- 피연산자와의 연산 결과 = 릴레이션
2. 관계대수의 특징
- 수학의 폐쇄 성질
- 절차적 언어
- 중첩된 수식 표현 가능
- 목적 : 어떻게 유도하는가?
3. 관계 대수의 연산의 분류
① 일반 집합 연산자
- 차수와 애트리뷰트 구조가 같아야한다
- 대응 애트리뷰트 별로 도메인이 같아야한다
- 종류 : 합집합∪ , 교집합 ∩, 차집합 - , 곱집합 X
② 순수 관계 연산자
- 근원연산 : 다른 연산자로 표현불가
- 복합연산 : 다른 연산자 ( 교집합, 조인,디비젼)으로 표현가능
- 종류 : 셀렉트σ , 프로젝트π , 조인 ▷◁ , 디비젼 ÷ , 리네임 ρ
※ 프로젝트 : 특정 속성만 추출한다. 열의 부분집합
※ 셀렉트 : 특정 튜플만 추출한다. 행의 부분집합
(2) 관계 해석
1. 관계 해석 특징
- 수학의 술어 논리를 기반으로 한 개념을 데이터베이스로 구성
- 비절차적 언어
- 프레디킷 해석 기반
- 코드에 정의된 내용을 릴레이션에 적용하여 형태와 내용을 결정하는 조건으로 구성한다
- 목적 : 무엇을 얻을것인가
2.관계 해석 종류
- 튜플 관계 해석
- 도메인 관계 해석
- 종류 : OR 연산 ∨ , AND 연산 ∧ , NOT 연산 ㄱ, 전칭 정량자 ∀, 존재 정량자 ∃
[6] VIEW 뷰
(1) 뷰의 개요
- 원본 테이블을 기존대로 두고 , 노출하고 싶은 정보만 모아서 만든 가상 테이블
- 데이터를 제한적으로 보여주기 위해 1개 이상의 테이블로 생성하는 가상 테이블
- 뷰는 다른 뷰에 참조될수 있다
- 가상 테이블이기 때문에 저장되지 않고 정의만 시스템 카탈로그에 저장된다
- 독자적인 인덱스를 가질수 없다
- 정의를 변경할수 없어 삭제후 재생성해야한다
(2) 뷰의 장점
- 데이터의 독립성과 무결성을 보장한다
- 하나의 테이블로 여러개의 상이한 뷰를 정의할수 있다
- 데이터 접근 제어로 사용자별 보안 기능이 가능하다
- 사용자의 데이터 관리를 간단하게 한다
(3) 뷰의 보안
- "뷰의 정의"가 권한 부여 기법을 사용한다
- 뷰를 통해 접근하기 때문에 권한이 없는 사용자는 뷰에 보이지 않는 데이터는 볼수 없다
- 갱신, 삽입,삭제 연산에 제약이 있다
'🌈 백엔드 > 데이터베이스' 카테고리의 다른 글
데이터베이스_MySQL에서 DB생성 및 실행 (0) | 2023.06.27 |
---|---|
데이터베이스_MySQL 계정 및 스키마 생성 (0) | 2023.06.26 |
DB_데이터베이스_트랜잭션 (0) | 2023.04.25 |
DB_데이터베이스_정규형과 DB 설계 (0) | 2023.04.24 |
DB_데이터베이스_개요 (0) | 2023.04.20 |
댓글