파일 시스템 | 데이터베이스 모델링 | 관계형 데이터베이스 |
---|---|---|
파일(File) | 엔티티(Entity) | 테이블(Table) |
레코드(Record) | 튜플(Tuple) | 행(Row) |
키(Key) | 식별자(Identifier) | 기본키(Primary Key), Unique |
필드(Field) | 속성(Attribute) | 열(Column) |
데이터베이스의 구조를 전반적으로 기술한 것. 데이터베이스를 구성하는 데이터 개체(Entity), 속성(Attribute), 레코드(Record) 간의 관계(Relationship) 등등 데이터베이스의 골격 구조를 나타는 일종의 도면으로 생각하면 된다.
외부 스키마( = 사용자 뷰(가상 테이블) = 서브 스키마)
사용자 입장에서 정의한 데이터베이스의 논리적 구조. 데이터들을 어떤 형식, 구조, 화면을 통해 사용자에게 보여줄 것인가에 대한 명세를 말하며 하나의 데이터베이스에는 여러 개의 외부 스키마가 있을 수 있다. 일반 사용자는 SQL을 이용하며 DB를 쉽게 사용할 수 있다. 응용 프로그래머는 C, 자바 등의 언어를 사용하여 DB에 접근한다.
개념 스키마( = 전체적인 뷰)
데이터베이스의 전체적인 논리적 구조. 모든 이용자가 필요로 하는 데이터를 총합한 조직 전체의 데이터베이스로 하나만 존재한다. 개체 간의 관계와 제약조건, 데이터베이스의 접근 권한, 보안 등에 관한 명세를 나타낸다. 데이터베이스 관리자에 의해서 구성된다.
내부 스키마
물리적 저장장치의 입장에서 본 데이터베이스 구조. 실제로 데이터베이스에 저장될 레코드의 물리적인 구조, 저장 데이터의 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 나타낸다.
DML(Data Manipulation Languge) - 데이터 조작어
DDL(Data Definition Languge) - 데이터 정의어
DCL(Data Control Languge) - 데이터 제어어
TCL(Transaction Control Languge) - 트랜잭션 제어어
논리적인 작업의 단위를 묶어서 DML에 의해 조작된 결과를 작업단위(트랜잭션) 별로 제어하는 명령어
COMMIT : 트랜잭션 처리가 정상적으로 종료되어 트랜잭션이 수행한 변경 내용을 데이
터베이스에 반영하는 연산이다. 내용을 변경한 트랜잭션이 완료되면 그 트랜잭션에 의해 데이터베이스는 새롭게 일관된 상태로 변경되며, 이 상태는 시스템 오류가 발생하더라도 취소되지 않는다.
ROLLBACK : 하나의 트랜잭션 처리가 비정상적으로 종료되어 데이터베이스의 일관성이 깨졌을 때, 트랜잭션이 행한 모든 변경 작업을 취소하고 이전 상태로 되돌리는 연산이다. ROLLBACK 연산 시 해당 트랜잭션은 받았던 자원과 잠금(LOCK)을 모두 반환하고, 재시작(Restart) 되든지 폐기가 된다.
SAVEPOINT : 현재의 트랜잭션을 작게 분할하는 명령어이다. 저장된 SAVEPOINT는 ROLLBACK TO SAVEPOINT문을 사용하여 지정한 곳 까지 ROLLBACK 할 수 있다. 여러 개의 SQL문을 수반하는 트랜잭션의 경우, 사용자가 트랜잭션 중간 단계에서 SAVEPOINT를 지정할 수 있다. 이 SAVEPOINT는 차후 ROLLBACK과 함께 사용되며, 현재 트랜잭션 내의 특정 SAVEPOINT까지 ROLLBACK 할 수 있다.
원자성(Atomicity)
트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 것을 보장하는 능력(중간 단계까지 실행되고 실패하는 일이 없도록 하는 것)
일관성(Consistency)
트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지하는 것
고립성(Isolation)
트랜잭션 수행 시, 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 보장하는 것을 의미. 트랜잭션 밖에 있는 어떤 연산도 중간 단계의 데이터를 볼 수 없음을 의미한다. 트랜잭션 실행내역은 연속적이어야 함을 의미한다.
지속성(Durability)
성공적으로 수행된 트랜잭션은 영원히 반영되어야 함을 의미한다. 시스템 문제, DB 일관성 체크 등을 하더라도 유지되어야 한다는 의미이다.
데이터베이스가 '데이터의 집합'이라고 한다면 데이터베이스를 관리하고 운영하는 소프트웨어를 DBMS라고 한다. 다양한 데이터가 저장되어 있는 데이터베이스는 여러 명의 사용자나 응용 프로그램과 공유하고 동시에 접근이 가능해야 한다.
HDBMS(Hierachical DBMS) : 계층적인 형태의 DBMS. 초기 세팅이 변화하면 이에 대처하기가 힘들어 잘 쓰이지 않음. 초기 DBMS의 형태.
NDBMS(Network DBMS) : 구성과 설계가 복잡하고 데이터 종속성을 해겨하지 못함.
ODBMS(Object-Oriented DBMS) : 정보를 객체의 형태로 표현하는 DBMS
RDBMS(Relational DBMS) : 관계형 데이터베이스 관리 시스템이라 하며 테이블과 테이블의 관계를 기반으로 하는 가장 범용적인 데이터베이스 관리 시스템. MySQL, Oracle, SQLite 등이 있다.
No-SQL(Not-Only SQL) : 데이터 간의 관계를 설정하지 않고 유여한 테이블 스키마를 가진다. 대용량 데이터/분산 처리에 적합하다는 장점이 있지만 데이터 일관성이 항상 보장되지 않는 단점이 있다. MongoDB, H Base, Cassandra, Redis 등이 있다.
RDBMS
No-SQL
자료 첨부
https://1-day-1-coding.tistory.com/2
https://coding-factory.tistory.com/77
https://inpa.tistory.com/entry/DB-%F0%9F%93%9A-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EA%B8%B0%EC%B4%88-%EA%B0%9C%EB%85%90
https://han-py.tistory.com/288
https://brunch.co.kr/@04925bf0d77f43e/8
https://velog.io/@mokyoungg/Data-Base-DB-%EA%B8%B0%EC%B4%88
https://cocoon1787.tistory.com/769
https://velog.io/@yejin20/DB-DB-%EC%9A%A9%EC%96%B4-%EC%A0%95%EB%A6%AC