article thumbnail image
Published 2020. 5. 25. 14:31

데이터베이스 : 매우 방대한 기능을 가지고 있는 정보 도구이다.

데이터베이스의 입력과 출력을 따져보는 것이 기본이다.

 

데이터의 생성, 수정, 삭제, 읽기

이 4가지가 데이터베이스의 핵심적인 작업이다.

 

Spreadshhet : 워드 같은 문서 작업 프로그램

Oracle은 대규모 회사에서 이용하는 Database이다.

MySQL은 무료로 배포되며 누구나 사용할 수 있다.


관계형 데이터베이스를 이용하면 데이터를 표의 형태로 정리정돈 할 수 있고 검색과 같은 작업을 빠르고 편리하게 이용할 수 있다.

 

관계형 데이터베이스(relational database)란?

관계형 데이터베이스는 현재 가장 많이 사용되고 있는 데이터베이스의 한 종류입니다.

관계형 데이터베이스란 테이블(table)로 이루어져 있으며, 이 테이블은 키(key)와 값(value)의 관계를 나타냅니다.

이처럼 데이터의 종속성을 관계(relationship)로 표현하는 것이 관계형 데이터베이스의 특징입니다.

 

관계형 데이터베이스의 테이블(table)은 다음 그림처럼 구성됩니다.

 

테이블은 이름을 가지고 있으며, 행(row)과 열(column) 그리고 거기에 대응하는 값을 가집니다.

관계형 데이터베이스는 위와 같이 구성된 테이블이 다른 테이블들과 관계를 맺고 모여있는 집합체로 이해할 수 있습니다.


관계형 데이터베이스의 특징

관계형 데이터베이스의 특징은 다음과 같습니다.

 

1. 데이터의 분류, 정렬, 탐색 속도가 빠릅니다.

2. 오랫동안 사용된 만큼 신뢰성이 높고, 어떤 상황에서도 데이터의 무결성을 보장해 줍니다.

3. 기존에 작성된 스키마를 수정하기가 어렵습니다.

4. 데이터베이스의 부하를 분석하는 것이 어렵습니다.


관계형 데이터베이스 용어

관계형 데이터베이스에 관련된 대표적인 용어는 다음과 같습니다.

 

1. 열(column)

각각의 열은 유일한 이름을 가지고 있으며, 자신만의 타입을 가지고 있습니다.

이러한 열은 필드(field) 또는 속성(attribute)이라고도 불립니다.

 

2. 행(row)

행은 관계된 데이터의 묶음을 의미합니다.

한 테이블의 모든 행은 같은 수의 열을 가지고 있습니다.

이러한 행은 튜플(tuple) 또는 레코드(record)라고도 불립니다.

 

3. 값(value)

테이블은 각각의 행과 열에 대응하는 값을 가지고 있습니다.

이러한 값은 열의 타입에 맞는 값이어야 합니다.

 

4. 키(key)

테이블에서 행의 식별자로 이용되는 열을 키(key) 또는 기본 키(primary key)라고 합니다.

즉, 테이블에 저장된 레코드를 고유하게 식별하는 후보 키(candidate key) 중에서 데이터베이스 설계자가 지정한 속성을 의미합니다.

 

5. 관계(relationship)

테이블 간의 관계는 관계를 맺는 테이블의 수에 따라 다음과 같이 나눌 수 있습니다.

 

1. 일대일(one-to-one) 관계

2. 일대다(one-to-many) 관계

3. 다대다(many-to-many) 관계

 

관계형 데이터베이스에서는 이러한 관계를 나타내기 위해 외래 키(foreign key)라는 것을 사용합니다.

외래 키는 한 테이블의 키 중에서 다른 테이블의 행(row)을 식별할 수 있는 키를 의미합니다.

 

테이블 간의 관계를 그림으로 표현하면 다음과 같습니다.

 

 

6. 스키마(schema)

스키마는 테이블을 디자인하기 위한 청사진이라고 할 수 있습니다.

이러한 스키마는 테이블의 각 열에 대한 항목과 타입뿐만 아니라 기본 키와 외래 키도 나타내야 합니다.

 

스키마는 개체-관계 다이어그램(entity-relationship diagram)이나 문자열로 표현할 수 있습니다.

CREATE TABLE Reservation(ID INT, Name VARCHAR(30), ReserveDate DATE, RoomNum INT);

CREATE TABLE Customer (ID INT, Name VARCHAR(30), Age INT, Address VARCHAR(20));

 

INSERT INTO Reservation(ID, Name, ReserveDate, RoomNum) VALUES(1, '홍길동', '2016-01-05', 2014);

INSERT INTO Reservation(ID, Name, ReserveDate, RoomNum) VALUES(2, '임꺽정', '2016-02-12', 918);

INSERT INTO Reservation(ID, Name, ReserveDate, RoomNum) VALUES(3, '장길산', '2016-01-16', 1208);

INSERT INTO Reservation(ID, Name, ReserveDate, RoomNum) VALUES(4, '홍길동', '2016-03-17', 504);

 

INSERT INTO Customer (ID, Name, Age, Address) VALUES (1, '홍길동', 17, '서울');

INSERT INTO Customer (ID, Name, Age, Address) VALUES (2, '임꺽정', 11, '인천');

INSERT INTO Customer (ID, Name, Age, Address) VALUES (3, '장길산', 13, '서울');

INSERT INTO Customer (ID, Name, Age, Address) VALUES (4, '전우치', 17, '수원');

 

'🚛 Database > SQL' 카테고리의 다른 글

MySQL - 서버 접속하기, TABLE 만들기  (0) 2020.07.25
MySQL - 설치 및 실행 (2020/07/25 기준)  (0) 2020.07.25
MySQL - DROP  (0) 2020.07.16
MySQL - ALTER  (0) 2020.07.16
SQL - CREATE  (0) 2020.07.16
복사했습니다!