관계형 데이터베이스 이론

2020. 4. 10. 04:59생활코딩/생활코딩웹

개요

관계형 데이터베이스라는 것을 알아봅니다.

 

관계형 데이터베이스

데이터베이스 안에는 관계형, 계층형, 객체형, nosql 등 다양한 형태의 데이터베이스가 있습니다.

이번에 사용한 mysql은 관계형 데이터베이스라고 하며 mssql, orcle 역시도 관계형 데이터베이스라고 합니다.

이 3가지의 데이터베이스가 전체 데이터베이스 시장에서 비중이나 영향력은 아주 절대적이기 때문에 관계형 데이터베이스에는 주류라고 할 수 있습니다

 

여기서 관계형 데이터베이스란 테이블로 이루어져 있으며, 이 테이블은 키와 값의 관계를 나타냅니다.

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

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

  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)을 식별할 수 있는 키를 의미합니다.

 

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

 

 

 

 

 

 

 

 

추가로 관계형 데이터베이 스을 사용할 때 조인을 사용하여 이름이 다른 테이블을 하나의 테이블로 묶어줄 수 있습니다

이 부분은 밑의 링크인 조인과 함께 보시면 많은 도움이 됩니다

https://jsho8834.tistory.com/93

 

관계형 데이터베이스의 꽃 JOIN

개요 이번에는 데이터베이스의 꽃이라고 불리는 조인을 알아봅니다. 조인 조인이란 두 개 이상의 테이블이나 데이터베이스를 연결하여 데이터를 검색하는 방법입니다. 관계형 데이터베이스에서는 중복 데이터를 피..

jsho8834.tistory.com

참고한 수업 링크

https://opentutorials.org/course/1688/9427

'생활코딩 > 생활코딩웹' 카테고리의 다른 글

보안  (0) 2020.04.10
관계형 데이터베이스 실습  (0) 2020.04.10
MySQL 실습  (0) 2020.04.09
데이터베이스(MySQL) 이론  (0) 2020.04.09
PHP 실습  (0) 2020.04.09