1. 데이터베이스의 정의와 특징
1) 데이터베이스
- 데이터의 집합
- 여러 명의 사용자나 응용프로그램이 공유하는 데이터틀
- 동시에 접근 가능해야함
- 데이터의 저장 공간 자체
2) DBMS
데이터베이스를 관리 운영하는 역할
3) DB/DBMS의 특징
(1) 데이터의 무결성
- 데이터베이스 안의 데이터는 오류가 없어야 함
- 제약 조건이라는 특성을 가짐
(2) 데이터의 독립성
- 데이터베이스 크기 변경하거나 데이터 파일의 저장소 변경 시 기존에 작성된 응용프로그램은 전혀 영향을 받지 않아야 함
(3) 보안
- 데이터베이스 안의 데이터에 데이터를 소유한 사람이나 데이터에 접근이 허가된 사람만 접근할 수 있어야 함
(4) 데이터 중복의 최소화
- 동일한 데이터가 여러 개 종복되어 저장되는 것 방지
(5) 응용프로그램 제작 및 수정이 쉬워짐
- 통일된 방식으로 응용프로그램 작성 가능
- 유지 보수 또한 쉬워짐
(6) 데이터의 안전성 향상
- 대부분의 DBMS가 제공하는 백업 복원 기능 이용
2. 관계형 DBMS
1) 관계형 DBMS이란?
관계형 데이터베이스는 현재 가장 많이 사용되고 있는 데이터베이스의 한 종류이다.
관계형 데이터베이스란 테이블(table)로 이루어져 있으며, 이 테이블은 키(key)와 값(value)의 관계를 나타낸다.
이처럼 데이터의 종속성을 관계(relationship)로 표현하는 것이 관계형 데이터베이스의 특징이다.
관계형 데이터베이스의 테이블(table)은 다음 그림처럼 구성된다.
테이블은 이름을 가지고 있으며, 행(row)과 열(column) 그리고 거기에 대응하는 값을 가진다.
관계형 데이터베이스는 위와 같이 구성된 테이블이 다른 테이블들과 관계를 맺고 모여있는 집합체로 이해할 수 있다.
2) 관계형 DBMS의 특징
- 데이터의 분류, 정렬, 탐색 속도가 빠르다.
- 오랫동안 사용된 만큼 신뢰성이 높고, 어떤 상황에서도 데이터의 무결성을 보장해 준다.
- 기존에 작성된 스키마를 수정하기가 어렵다.
- 데이터베이스의 부하를 분석하는 것이 어렵다.
3) 관계형 DBMS 용어
관계형 데이터베이스에 관련된 대표적인 용어는 다음과 같다.
(1) 열(column)
각각의 열은 유일한 이름을 가지고 있으며, 자신만의 타입을 가지고 있다.
이러한 열은 필드(field) 또는 속성(attribute)이라고도 불린다.
(2) 행(row)
행은 관계된 데이터의 묶음을 의미한다.
한 테이블의 모든 행은 같은 수의 열을 가지고 있다.
이러한 행은 튜플(tuple) 또는 레코드(record)라고도 불린다.
(3) 값(value)
테이블은 각각의 행과 열에 대응하는 값을 가지고 있다.
이러한 값은 열의 타입에 맞는 값이어야 한다.
(4) 키(key)
테이블에서 행의 식별자로 이용되는 열을 키(key) 또는 기본 키(primary key)라고 한다.
즉, 테이블에 저장된 레코드를 고유하게 식별하는 후보 키(candidate key) 중에서 데이터베이스 설계자가 지정한 속성을 의미한다.
(5) 관계(relationship)
테이블 간의 관계는 관계를 맺는 테이블의 수에 따라 다음과 같이 나눌 수 있다.
- 일대일(one-to-one) 관계
- 일대다(one-to-many) 관계
- 다대다(many-to-many) 관계
관계형 데이터베이스에서는 이러한 관계를 나타내기 위해 외래 키(foreign key)라는 것을 사용한다.
외래 키는 한 테이블의 키 중에서 다른 테이블의 행(row)을 식별할 수 있는 키를 의미한다.
테이블 간의 관계를 그림으로 표현하면 다음과 같다.
(6) 스키마(schema)
스키마는 테이블을 디자인하기 위한 청사진이라고 할 수 있다.
이러한 스키마는 테이블의 각 열에 대한 항목과 타입뿐만 아니라 기본 키와 외래 키도 나타내야 한다.
[출처] http://www.tcpschool.com/mysql/mysql_intro_relationalDB
'Database' 카테고리의 다른 글
[MySQL] DB 백업을 위한 방법 (0) | 2022.04.18 |
---|---|
INSERT, UPDATE, DELETE문 (0) | 2022.04.08 |
SELECT문 (0) | 2022.04.08 |
뷰(View)와 트리거(Trigger) (0) | 2022.03.25 |
데이터베이스 (0) | 2022.03.15 |