현재 가장 많이 사용되고 있는 데이터베이스의 한 종류이다.
테이블로 이루어져 있으며(엑살같은), 이 테이블은 key-value의 관계를 나타낸다.
데이터의 종속성을 관계로 표현하는 것이 관계형 데이터 베이스의 특징이다.
✅ 데이터의 분류, 정렬, 탐색 속도가 빠르다.
✅ 신뢰성이 높고, 어떤 상황에서도 데이터의 무결성을 보장한다.
✅ 기존에 작성된 스키마를 수정하기 어렵다.
✅ 데이터베이스의 부하 분석이 어렵다.
트랜젝션은 여러개의 작업을 하나로 묶은 실행 유닛을 일컷는 말이다. 각 트랜잭션은 하나의 특정 작업으로 시작해 묶여있는 모든 작업을 완료해야 정상적으로 종료한다. 단하나의 작업이라도 실패한다면, 이 트랜젝션에 속한 작업은 실패로 판단한다. 데이터베이스의 트렌젝션은 ACID라는 특성을 갖는다.
Atomicity
📌 원자형; 하나의 트렌젝션내에서는 모든 연산이 성공하거나, 모두 실패해야한다.
Consistency
📌 일관성; 하나의 트랜젝션 전후에 데이터 베이스의 일관된 상태가 유지되어야한다.
Isolation
📌 격리성; 각가의 트랜젝션은 독립적이고 서로의 연산을 확인하거나 영향을 주지 않는다.
Durability
📌 영속성; 하나의 성공된 트랜젝션에 대한 로그가 영구적으로 남는다.
각각의 열은 유일한 이름을 가지고 있으며, 자신만의 타입(number, string등)을 가지고 있다.
열을 필드(field) 또는 속성(attribute)이라고도 한다.
행은 관계된 데이터의 묶음을 의미한다.
한 테이블의 모든 행은 같은 수의 열을 가진다.
행을 튜플(tuple)이나 레코드(record)라고도 부른다.
테이블은 각각의 행과 열에 대응하는 값을 갖는다.
이 값은 열의 타입에 맞아야한다.
테이블에서 행의 식별자로 이용되는 열을 (key)또는 기본 키(primary key)라고 한다. 객체의 JS에서 객체의 id와 유사한 역할을 한다.
즉, 테이블에서 저장된 레코드를 고유하게 식별하는 후보 키(candidate key) 중에서 데이터베이스 설계자가 지정한 속성을 의미한다.
테이블 간의 관계는 관계를 맺는 테이블 수에 다라 다음과 같이 나눌 수 있습니다.
일대일 관계
일대다 관계
다대다 관계
✅ 관계형 데이터베이스에서는 이러한 관계를 나타내기 위해 외래 키(foreigh key)라는 것을 사용한다. 외래 키는 한 테이블의 키 중에서 다른 테이블의 행(row)을 식별할 수 있는 키를 의미한다.
스키마는 테이블을 디자인하기 위한 청사진 이라고 할 수 있다.
이러한 스키마는 테이블의 각 열에 대한 항목과 타입뿐만 아니라 기본 키와 외래키도 나타내야 한다.
스키마는 개체-관계 다이어그램(entity-relationship diagram)이나 문자열로 표현할 수 있다.
Reservation(ID, Name, Date, RoomNum)
출처 http://tcpschool.com/mysql/mysql_intro_relationalDB
Structured Query Language(SQL)은 데이터베이스 언어로, 주로 관계형 데이터베이스에 사용한다. 데이터의 구조가 고정되었있다.
데이터베이스용 프로그램언어인 SQL은 데이터베이스에 쿼리를 보내 원하는 데이터를 가져오고나 삽입할 수 있다. 그리고 SQL은 relation이라고 불리는 데이터가 구조화된 테이블을 사용하는 데이터베이스에서 활용 할 수 있다.
SQL을 사용하는 관계형데이터 데이터베이스 예.
MySQL, Oracle, SQLite, PostgreSQL등
데이터의 구조가 고정되지 않은 데이터베이스는 테이블을 사용하지 않고 데이터를 다른 형태로 저장한다. 이러한 데이터베이스들을 NoSQL이라하며 대표적을 MongoDB처럼 문서지향 데이터베이스가 있다.