상상쓰

[DB] 데이터베이스 기초 본문

Programming

[DB] 데이터베이스 기초

상상쓰 2021. 11. 3. 17:29

 

자료와 정보

  • 자료 : 관찰이나 측적을 통해 수집한 단순한 사실 또는 결과값
  • 정보 : 자료를 가공해서 의사 결정에 도움을 주는 결과

 

데이터베이스 정의

  • 통합 데이터(Integrated) : 자료의 중복을 배제한 자료 
  • 저장 데이터(Stored) : 컴퓨터가 접근할 수 있는 저장 매체에 저장된 자료
  • 운영 데이터(Operational) : 업무를 수행하는 데 반드시 필요한 자료
  • 공용 데이터(Shared) : 여러 응용 시스템들이 공동으로 소유하고 있는 자료

 

데이터베이스 특징

  • 실시간 접근성 : 실시간 응답이 가능
  • 계속적인 변화 : 항상 최신의 데이터를 유지
  • 동시공용 : 다수의 사용자가 동시에 같은 데이터를 이용
  • 내용에 의한 참조 : 데이터를 참조할 때 주소가 아닌 내용으로 참조

 

데이테베이스 용어

  • 식별자 : 유일성, 최소성을 만족하는 키, 일반적인 예로 학번, 주민등록번호 등
  • 튜플 : 테이블에서 행, 튜플의 수 = 카디날리티
  • 어트리뷰트 : 테이블에서 열, 어트리뷰트의 수 = 디그리(차수)
  • 도메인 : 하나의 어트리뷰트 취할 수 있는 원자 값들의 집합

 

DBMS

  • 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성, 데이터베이스를 관리해주는 소프트웨어
  • 종속성과 중복성으로 인한 문제점을 해결하기 위해 제안된 시스템
  • 정의, 조작, 제어기능

 

MYSQL, ORACLE 스키마? 데이터베이스?

  • MYSQL : 인스턴스 - 스키마(= 데이터베이스) - 테이블
  • ORACLE : 인스턴스 - 데이터베이스(유일) - 스키마 - 테이블

 

데이터베이스 설계

  • 요구 분석 - 개념적 설계(추상적 개념으로 표현하는 과정) - 논리적 설계 - 물리적 설계 - 구현

 

키의 종류

  • 후보키 : 유일성(하나의 키값으로 하나의 튜플만을 유일하게 식별)과 최소성(모든 레코드들을 유일하게 식별하는데 꼭 필요한 속성만으로 구성)을 만족
  • 기본키 : 후보키 중에서 선택한 키, Null값을 가질 수 없음
  • 대체키 : 후보키 - 기본키, 보조키라고도 함
  • 외래키 : 참조되는 릴레이션의 기본키와 대응

 

무결성(Integrity)

  • 개체 무결성 : 릴레이션에서 기본키를 구성하는 속성은 Null값이거나 중복값을 가질 수 없다.
  • 참조 무결성 : 외래키 값은 Null이거나 참조 릴레이션의 기본키 값과 동일

 

정규화

  • 제 1 정규화 : 도메인 값이 하나의 값을 갖도록 테이블을 분리
  • 제 2 정규화 : 완전 함수 종속을 만족하도록 테이블을 분리
  • 제 3 정규화 : 이행적 종속을 없애도록 테이블을 분리
  • BCNF 정규화 : 모든 결정자가 후보키가 되도록 테이블을 분해

 

데이터베이스 언어

  • 데이터 정의 언어(DDL) : CREATE, DROP, ALTER
  • 데이터 조작 언어(DML) : 사용자로 하여금 데이터를 처리할 수 있게 하는 도구로 비절차적 데이터 언어, SELECT, INSERT, DELETE, UPDATE
  • 데이터 제어 언어(DCL) :  COMMIT, ROLLBACK, GRANT, REVOKE

 

SQL

  • SELECT(5) 속성명 FROM(1) 테이블명 [WHERE 조건](2) [GROUP BY 속성명](3) [HAVING 조건](4) [ORDER BY 속성명 (ASC)|DESC](6);, (실행 순서)
  • INSERT INTO 테이블명 (속성명) VALUES (데이터);
  • DELETE FROM 테이블명 [WHERE 조건];
  • UPDATE 테이블명 SET 속성명 = 데이터 [WHERE 조건];
  • CREATE VIEW 뷰이름 AS SELECT문;
  • DROP VIEW 뷰이름 [RESTRICT(뷰를 다른 곳에서 참조하고 있으면 삭제가 취소) | CASCADE(뷰를 참조하는 곳 모두 삭제)];

 

트랜잭션

  • 원자성(Atomicity) : 트랜잭션의 연산은 데이티베이스에 모두 반영되거나 전혀 반영되지 않아야 한다.
  • 일관성(Consistency) : 시스템의 고정요소는 트랜잭션 수행 전과 수행 완료 후의 상태가 같아야 한다.
  • 독립성(Isolation) : 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 다른 트랜잭션의 연산이 끼어들 수 없다.
  • 영속성(Durablility) : 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 한다. 

 

 

 

Comments