일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- dp
- Level3
- CS
- web
- LeetCode
- 프로그래밍
- Level1
- C++
- python
- Medium
- VUE
- 카카오
- 코테연습
- 자바스크립트
- 동적계획법
- javascript
- 리트코드
- typescript
- 백준
- 배열
- OS
- 파이썬
- 고득점Kit
- 리액트
- sql
- 웹프로그래밍
- 프로그래머스
- Level2
- Doitvue.js입문
- react
- Today
- Total
[데이터베이스] 데이터베이스의 특징과 설계, E-R 다이어그램 본문
데이터 베이스를 사용하는 이유
기존의 파일 시스템을 이용한 데이터 관리에서 생기는 데이터 종속성 문제와 중복성, 데이터 무결성을 해결하기 위해 데이터 베이스가 필요하다.
특징
데이터의 독립성
- 물리적 독립성: 데이터 파일을 늘리거나 새롭게 추가하더라도 관련된 응용프로그램을 수정할 필요가 없다.
- 논리적 독립성: 데이터 베이스는 논리적 구조로 다양한 응용 프로그램의 논리적 요구를 만족시켜줄 수 있다.
데이터의 무결성
데이터의 정확성, 일관성, 유효성이 유지되는 것을 말한다.
개체 무결성
모든 테이블이 기본키로 선택된 필드를 가져야한다. 고유한 값이며 빈 값은 허용되지 않는다.
참조 무결성
두 테이블의 데이터가 항상 일관된 값을 갖도록 유지되어야한다. 만약 참조하는 데이터가 삭제된다면 참조하는 데이터도 삭제되어야한다.
도메인 무결성
필드의 무결성 보장을 위한 것으로 필드의 타입, NULL 값 허용 등에 맞는 데이터가 입력되었는지를 확인하는 것이다.
무결성 규칙
데이터의 유효성 검사를 통해 데이터의 무결성을 구현하게 된다.
데이터의 보안성
인가된 사용자들만 접근할 수 있도록 계정 관리 또는 접근 권한을 설정함으로써 모든 데이터에 보안을 구현할 수 있다.
데이터의 일관성
연관된 정보를 논리적인 구조로 관리함으로써 어떤 하나의 데이터만 변경했을 경우 발생할 수 있는 데이터의 불일치성을 배제할 수 있다. 또한 작업 중 일부 데이터만 변경되어 나머지 데이터와 일치하지 않는 경우의 수를 배제할 수 있다.
데이터 중복 최소화
데이터를 통합해서 관리함으로써 자료의 중복과 데이터의 중복성 문제를 해결할 수 있다.
설계
요구 조건 분석 -> 개념적 설계 -> 논리적 설계 -> 물리적 설계 -> 구현
개념적 설계(정보 모델링, 개념화)
현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정이다.
- 개념 스키마 모델링, 트랜잭션 모델링
- 요구 조건 명세를 독립적인 E-R 다이어그램으로 작성한다.
- 독립적인 개념 스키마를 설계한다.
논리적 설계 (데이터 모델링)
현실 세계의 자료를 물리적 저장 장치에 저장할 수 있도록 변환하기 위해 특정 DBMS가 지원하는 논리적 자료 구조로 변환시키는 과정이다.
- 목표 DBMS에 맞는 논리 스키마 설계
- 트랜잭션의 인터페이스를 설계한다.
- 관계형 데이터베이스라면 테이블을 설계한다.
물리적 설계 (데이터 구조화)
논리적 구조로 표현된 데이터를 물리적 저장 장치에 저장할 수 있는 물리적 구조의 데이터로 변환하는 과정이다.
- 데이터베이스 파일의 저장 구조 및 액세스 경로를 결정한다.
- 저장 레코드의 형식, 순서, 접근 경로 등의 정보를 사용하여 데이터가 컴퓨터에 저장되는 방법을 묘사한다.
- 트랜잭션 처리량, 응답 시간, 디스크 용량 등을 고려한다.
E-R 모델
개체 타입과 이들 간의 관계 타입을 이용해 현실 세계를 개념적으로 표현한다.
- 데이터를 개체(Entity), 관계(Relationship), 속성(Attribute)로 묘사한다.
- E-R 다이어그램으로 표현하며 1:1, 1:N, N:M 등의 관계 유형을 제한 없이 나타낼 수 있다.
E-R 다이어그램
'CS > 데이터베이스' 카테고리의 다른 글
[데이터베이스] SQL (0) | 2022.04.10 |
---|---|
[데이터베이스] 인덱스 (0) | 2022.04.09 |
[데이터베이스] 트랜잭션 (0) | 2022.04.09 |
[데이터베이스] 정규화 (0) | 2022.04.08 |
[데이터베이스] 관계형 데이터 베이스 (0) | 2022.04.08 |