데이터베이스 11

데이터베이스(회복과 병행제어2)

병행 수행 여러 사용자가 데이터베이스를 동시에 공유할 수 있도록 여러 개의 트랜잭션을 동시에 수행하는 것을 의미한다. 여러 트랜잭션이 차례로 번갈아 수행되는 인터리빙 방식으로 수행됨 병행 제어 병행 수행 시 같은 데이터에 접근하여 연산을 실행해도 문제가 발생하지 않고 정확한 수행 결과를 얻을 수 있도록 트랜잭션의 수행을 제어하는 것을 의미한다. 병행 수행 시 발생할 수 있는 문제점 ● 갱신 분실 하나의 트랜잭션이 수행한 데이터 변경 연산의 결과를 다른 트랜잭션이 덮어써 변경 연산이 무효화되는 것 여러 트랜잭션이 동시에 수행되더라도 갱신 분실 문제가 발생하지 않고 마치 트랜잭션들을 순차적으로 수행하는 것과 같은 결과 값을 얻을 수 있어야 한다. ● 모순성 하나의 트랜잭션이 여러 개 데이터 변경 연산을 실행..

데이터베이스 2021.05.29

데이터베이스(회복과 병행 제어)

트랜잭션 - 하나의 작업을 수행하는데 필요한 데이터베이스 연산들을 모아놓은 것 - 작업 수행에 필요한 SQL 문들의 모임 - 논리적인 작업의 단위 - 장애 발생 시 복구작업이나 병행 제어 작업을 위한 중요한 단위로 사용됨 트랜잭션의 특성 ● 원자성 트랜잭션의 연산들이 모두 정상적으로 실행되거나 하나도 실행되지 않아야 하는 all-or-nothing 방식을 의미 만약 트랜잭션 수행 중 장애가 발생한다면 지금까지 실행한 연산 처리를 모두 취소하고, 데이터베이스를 트랜잭셩 작업 전 상태로 되돌려야 한다. ● 일관성 트랜잭션이 성공적으로 수행된 후에도 데이터베이스가 일관된 상태를 유지해야 함을 의미 ● 격리성 수행 중인 트랜잭션이 완료될 때까지 다른 트랜잭션들이 중간 연산 결과에 접근할 수 없음을 의미 여러 트..

데이터베이스 2021.05.29

데이터베이스 정규화 총정리

정규화란 이상 현상이 발생하지 않도록, 릴레이션을 관련 있는 속성들로만 구성하기 위해 릴레이션을 분해하는 과정 함수적 종속성을 판단하여 정규화를 수행 (함수적 종속성: 속성들 간의 관련성) 이상현상이란? 불필요한 데이터 중복으로 인해 릴레이션에 대한 데이터 삽입, 수정, 삭제 연산을 수행할 때 발생할 수 있는 부작용 - 삽입 이상: 새 데이터를 삽입하기 위해 불필요한 데이터도 함께 삽입해야 하는 문제 - 갱신 이상: 중복 투플 중 일부만 변경하여 데이터가 불일치하게 되는 모순의 문제 - 삭제 이상: 투플을 삭제하면 꼭 필요한 데이터까지 삭제되는 데이터 손실의 문제 정규형(NF: Normal Form) 릴레이션이 정규화된 정도 각 정규향마다 제약조건이 존재하고, 릴레이션의 특성을 고려해서 적합한 정규형을 ..

데이터베이스 2021.05.21

데이터베이스 언어 SQL-2

● 데이터 검색 : SELECT 문 > 그룹별 검색 SELECT [ALL | DISTINCT ] 속성_리스트 FROM 테이블_리스트 [ WHERE 조건 ] [ GROUP BY 속성_리스트 [ HAVING 조건 ] ] [ ORDER BY 속성_리스트 [ ASC | DESC ] ]; > 부속 질의문을 이용한 검색 : SELECT 문 안에 또 다른 SELECT 문을 포함하는 질의, 부속 질의문을 먼저 수행하고, 그 결과를 이용해 상위 질의문을 수행 EX) SELECT 제품명, 단가 FROM 제품 WHERE 제조업체 = ( SELECT 제조업체 FROM 제품 WHERE 제품명 = '달콤비스킷'); 연산자 설명 IN 부속 질의문의 결과 값 중 일치하는 것이 있으면 검색 조건이 참 NOT IN 부속 질의문의 결과 ..

데이터베이스 2021.04.19

데이터베이스 언어 SQL

● SQL(Structured Query Language) 관계 데이터베이스를 위한 표준 질의어, 비절차적 데이터 언어 사용방식 - 대화식 SQL : 데이터베이스 관리 시스템에 직접 접근해 질의를 작성하여 실행 - 삽입 SQL : 프로그래밍 언어로 작성된 응용 프로그램에 삽입 ● SQL의 분류 - 데이터 정의어(DDL) : 테이블을 생성하고 변경,제거하는 기능을 제공 - 데이터 조작어(DML) : 테이블에 새 데이터를 삽입하거나, 테이블에 저장된 데이터를 수정, 삭제, 검색하는 기능을 제공 - 데이터 제어어(DCL) : 보안을 위해 데이터에 대한 접근 및 사용 권한을 사용자별로 부여하거나 취소하는 기능을 제공 ● SQL의 데이터 정의 기능 테이블 생성 : CREATE TABLE 문 CREATE TABLE..

데이터베이스 2021.04.19

관계 데이터 연산

관계 데이터 연산의 개념 ● 데이터 모델 (data model) 데이터 모델링의 결과물을 표현하는 도구 - 개념적 데이터 모델 : 사람의 머리로 이해할 수 있도록 현실 세계를 개념적 모델링하여 데이터베이스의 개념적 구조로 표현하는 도구 ex) 개체-관계 모델 - 논리적 데이터 모델 : 개념적 구조를 논리적 모델링하여 데이터베이스의 논리적 구조로 표현하는 도구 ex) 관계 데이터 모델 데이터 모델 = 데이터 구조 + 연산 + 제약조건 ● 관계 데이터 연산 원하는 데이터를 얻기 위해 릴레이션에 필요한 처리 요구를 수행하는 것 관계 대수와 관계 해석이 있다. (데이터의 유용성을 검증하는 기준) - 관계 대수 : 원하는 결과를 얻기 위해 릴레이션의 처리 과정을 순서대로 기술하는 언어(절차 언어) 연산자 기호 표..

데이터베이스 2021.04.19

데이터베이스 관리 시스템

데이터베이스 관리 시스템의 등장 배경 ● 파일 시스템 데이터를 파일로 관리하기 위해 파일을 생성, 삭제, 수정, 검색 기능을 제공하는 소프트웨어 응용 프로그램마다 필요한 데이터를 별도의 파일로 관리함 파일 시스템의 문제점 - 같은 내용의 데이터가 여러 파일에 중복 저장된다. (데이터의 일관성과 무결성을 유지하기 어렵다.) - 응용 프로그램이 데이터 파일에 종속적이다. (데이터 종속성, 사용하는 파일의 구조를 변경하면 응용 프로그램도 같이 수정해야 한다.) - 데이터 파일에 대한 동시 공유, 보안, 회복 기능이 부족하다. (데이터의 중복 가능성, 파일 수정 중 장애 발생시 회복 불가능, 파일 단위로 읽기, 쓰기, 실행 권한을 부여하여 데이터 접근을 통제한다.) - 응용 프로그램 개발이 쉽지 않다. ● 데이..

데이터베이스 2021.04.18

데이터베이스 기본 개념

● 데이터와 정보 - 데이터: 현실세계에서 단순히 관찰하거나 측정하여 수집한 사실이나 값 - 정보: 의사결정에 유용하게 활용할 수 있도록 데이터를 처리한 결과물 ● 정보시스템과 데이터베이스 - 정보 시스템: 조직 운영에 필요한 데이터를 수집하여 저장해두었다가 필요할 때 유용한 정보를 만들어 주는 수단 - 데이터베이스: 정보 시스템 안에서 데이터를 저장하고 있다가 필요할 때 제공하는 역할을 담당 ● 데이터베이스 특정 조직의 여러 사용자가 공유하여 사용할 수 있도록 통합해서 저장한 운영 데이터의 집합 (통공저운) - 통합 데이터: 최소의 중복과 통제 가능한 중복만 허용하는 데이터 - 공유 데이터: 특정 조직의 여러 사용자가 함께 소유하고 이용할 수 있는 공용 데이터 - 저장 데이터: 컴퓨터가 접근할 수 있는..

데이터베이스 2021.04.18

관계 데이터 모델

관계 데이터 모델의 기본 개념 개념적 구조를 논리적 구조로 표현하는 논리적 데이터 모델 도서번호 도서이름 출판사 가격 1 축구의 역사 한별 10000 2 축구 아는 여자 빛나 12000 열을 속성이라고 한다. 속성의 개수는 '차수'라고 부른다. 행을 튜플(tuple)이라고 한다. 튜플의 개수는 '카디널리티'라고 부른다. 도서번호, 도서이름, 출판사 등 속성의 이름을 통틀어서 '스키마'라고 부른다. 속성의 값을 '인스턴스'라고 부른다. 릴레이션(relation) 하나의 개체에 관한 데이터를 2차원 테이블의 구조로 저장한 것 테이블 내에 객체를 표현하고자 하는 모델 행과 열로 구성된 테이블 관계 데이터 모델의 기본 용어 > 도메인 하나의 속성이 가질 수 있는 모든 값의 집합 ex) 중학교 학년 : 1학년, ..

데이터베이스 2021.03.16

데이터베이스 시스템

데이터베이스 시스템(DBS: DataBase System) 데이터베이스에 데이터를 저장하고, 이를 관리하여 조직에 필요한 정보를 생성해주는 시스템 사용자 - 데이터 언어 - 데이터베이스 관리 시스템 - 데이터베이스 로 구성됨 ※ 스키마 : 데이터베이스에 저장되는 데이터 구조와 제약조건을 정의한 것 스키마의 예: 고객번호 INT 이름 CHAR(10) 나이 INT 주소 CHAR(20) ※ 인스턴스 : 스키마에 따라 데이터베이스에 실제로 저장된 값 3단계 데이터베이스 구조 데이터베이스를 쉽게 이해하고 이용할 수 있도록 하나의 데이터베이스를 관점에 따라 세 단계로 나눔 외부 단계 : 개별 사용자 관점(사용자 관점) 개념 단계 : 조직 전체의 관점(관리인 관점) 내부 단계 : 물리적인 저장 장치의 관점 (DBMS..

데이터베이스 2021.03.16