-
관계형 데이터베이스 (Relational DataBase) 란DB 2020. 11. 13. 15:23
들어가기전 간단한 용어정리
* 열(column) : 필드(field) 라고도 부르며, 항목의 속성(명칭)을 나타낸다. 필드 마다 각각 정수, 텍스트 같은 데이터 유형을 정할 수 있다.
* 행(row) : 레코드(record) 라고도 부르며, 각 데이터 항목을 저장한다.
* 스키마(schema) : 필드는 데이터 유형뿐만 아니라 제약사항도 지정할 수 있는데 이러한 제약사항을 스키마라고 부른다. 예를들어 필드는 중복 값을 해당 행에 저장할 수 없다거나, 반드시 값을 가져야 한다(not null)는 조건 등을 걸 수 있다.관계형 데이터베이스에서의 관계
각 테이블의 행과 행이 연결되는 관계를 맺을수 있기 때문에 관계형 데이터 베이스라는 이름이 붙여졌다.테이블간의 관계는 일 대 일, 일 대 다, 다 대 다 의 관계가 있다.
우리는 하나의 테이블에 필요한 모든 필드를 넣고 모든 데이터 항목을 저장할 수 있다.
하지만 이렇게 하면 데이터들이 중복해서 저장되는 상황이 발생할 수 있어 비효율 적이다.
그림과 같이 고객 상품 주문을 저장하는 테이블이 있다고 가정하면
특정 고객이 여러 상품을 구매하는 경우 고객 이름과 고객 지역 데이터가 계속 해서 중복된다.
수백만 이상의 데이터라고 가정하면 쉬운일이 아닐것이다.
그래서 관계형 데이터베이스 모델에서는 다음 그림과 같이 테이블을 분리하여
행과 행을 연결할 수 있다.
그림과 같이 테이블 간의 관계는 기본 키 (Primary key) 와 외래 키 (Foreign key) 라는 개념을
사용하여 맺어질 수 있다.
기본키는 고유한 ID필드로 그림에서는 고객번호 필드이다.
이 필드는 각 행이 중복된 값을 가질수 없다.
테이블의 행을 연결 시켜주는 역할을 한다.
이렇게 테이블을 분리하고 관계를 형성해 데이터를 효율적으로 관리할 수 있다.
(테이블을 분리하고 중복 데이터를 제거하는 과정을 정규화 라고 한다.)
SQL(Structured Query Language) 이란
관계형 데이터베이스에서 주요한 특징 중 하나는 SQL 이라는 구조화 질의어를 사용한다.
SQL은 RDBMS에서 사용하는 프로그래밍 언어라고 보면된다.트랜잭션(transaction)이란
트랜잭션은 데이터베이스 관리시스템 에서 하나의 작업 단위이다.
데이터베이스는 여러 사람들이 데이터를 공유하고 사용할 목적으로 사용된다.
그렇기 때문에 다수의 사람들이 동시에 사용하더라도 문제가 없어야한다.
트랜잭션은 모든 명령문을 완벽하게 처리하거나,
하나의 명령문이라도 문제가 발생하면 모든 명령문을 수행하지 않고 데이터를 보존하는 기능을 해야한다.
이러한 트랜잭션의 기능을 제대로 수행하기 위해서는 네 가지 특성을 만족해야 하는데
ACID 특성이라고 부른다.
- 원자성(Atomicity): 원자성이란 트랜잭션이 수행하는 연산들을 모두 정상적으로 처리하거나 모두 처리하지 않아야 한다는 all-or-nothing 방식을 의미한다.
- 일관성(Consistency): 일관성은 트랜잭셕이 성공적으로 수행된 이후에도 데이터 베이스의 데이터는 일관된 상태를 유지해야한다는 의미
- 격리성(Isolation): 격리성은 하나의 트랜잭션이 완료될 때 까지 다른 트랜잭션이 간섭하지 못하도록 하여 각각의 트랜잭션이 독립적으로 수행되어야 한다는 의미이다.
- 지속성(Durability) : 지속성은 트랜잭션이 성공적으로 완료된 이후에 데이터베이스의 데이터들이 영구적으로 보존되어야 한다는 의미
728x90반응형'DB' 카테고리의 다른 글
[mybatis]파라미터, 문자열 대체 (#{value}, ${value}) (1) 2021.06.21 SQL문을 이용하여 데이터 가져오기 -1 (0) 2021.06.05 DBMS(DataBase Management System) (0) 2021.06.04 데이터 베이스 (0) 2021.06.04 [SQL] FOREIGN KEY 제약 조건 (1) 2020.11.30