본문 바로가기

Computer Science/DataBase11

[데이터베이스] 9장 트랜잭션 9-1 트랜잭션 개요 1. 트랜잭션 위의 상황에서 수정하고 있는데 중간에 컴퓨터 다운되면 어캄..? -> log를 유지하자! 두 가지 이상의 명령문이 실행될 때 중간에 다운 될 것을 고려하여 하나의 트랜잭션으로 취급해야함. 두 개 이상의 sql문들을 하나의 트랜잭션으로 취급하려면 사용자가 명시적으로 표시해야함. 이로써 모든 명령어가 실행되거나 모두 실행이 안되거나임. 2. 트랜잭션의 특성(ACID) Atomicity 원자성 - 모두 수행되거나 말거나 Consistency 일관성 - 트랜잭션 수행전과 다른 새로운 일관된 상태를 가짐. 일시적인 불일치 가능 Isolation 고립성 - 한 트랜잭션이 데이터를 갱신하는 동안 이 트랜잭션이 완료되기 전에는 갱신 중인 데이터를 다른 트랜잭션들이 접근 못하도록. D.. 2023. 12. 12.
[데이터베이스] 8장 뷰와 시스템 카탈로그 뷰: 관계 데이터베이스 시스템에서 데이터베이스의 보안 메커니즘. 복잡한 질의를 간단하게 표현하는 수단. 데이터 독립성을 높이기 위해 사용. 시스템 카탈로그: 시스템 내의 객체에 관한 정보를 포함. 8-1 뷰 1. 뷰 한 사용자의 전체 외부 뷰 대신 하나의 가상 릴레이션을 의미. 뷰는 기존의 기본 릴레이션에 대한 SELECT문으로 정의됨. 뷰는 리렐이션으로부터 데이터를 검생하거나 갱신할 수 있는 동적인 창의 역할을 함. 스냅샷: SELECT문의 결과를 기본 릴레이션의 형태로 저장한 것. 2. 뷰의 정의 3. 뷰 사용시 DBMS에서 거치는 과정 4. 뷰의 장점 복잡한 질의를 간단하게 표현할 수 있게 함 데이터 무결성을 보장하는데 활용됨. - WITH CHECK OPTION을 사용하면 뷰가 선택할 수 없는 투.. 2023. 12. 12.
[데이터베이스] 7장 릴레이션 정규화 7-1 정규화 개요 1. 릴레이션 정규화 db설계 제대로 안하면 갱신 이상을 유발함. 정규화는 주어진 릴레이션을 분해함으로써 중복과 세가지 갱신 이상을 최소화함. 2. 갱신 이상과 중복 수정 이상: 데이터 일부만 수정해 데이터 불일치 발생. 삽입 이상: 불필요한 정보를 함께 저장 안하면 어떤 정보를 저장하는 것이 불가능 삭제 이상: 유용한 정보를 함께 삭제 안하면 삭제가 불가능. 중복 -> 릴레이션 분해로 해결하자~ 7-2 함수적 종속성 1. 함수적 종속성 만약 애트리뷰트 A가 애트리뷰트 B의 결정자이면 B가 A에게 함수적으로 종속한다 정규화 이론의 핵심 제2정규형부터 BCNF까지 적용됨. 완전 함수적 종속성: 애트리뷰트 B가 애트리뷰트 A에 함수적으로 종속하면서 애트리뷰트 A의 어떤 진부분집합에도 함수.. 2023. 12. 12.
[데이터베이스] 6장 물리적 데이터베이스 설계 0. 물리적 데이터베이스 설계 논리적인 설계의 데이터 구조를 보조 기억 장치 상의 화일로 사상함. 6-1 보조 기억 장치 1. 보조 기억 장치 DBMS는 사용자가 원하는 데이터를 포함하고 있는 블록을 디스크에서 주기억장치로 가져와야함. 데이터가 변경된 경우 블록들을 디스크에 다시 기록. 보통 블록의 크기는 4,096바이트. 각 화일은 고정된 크기의 블록들로 나누어져서 저장됨. - 디스크 디스크는 데이터베이스를 장기간 보관해주는 보조 기억 장치. 전체 데이터베이스가 디스크에 저장됨. 컴퓨터 시스템이 다운되는 경우에도 디스크의 데이터베이스는 손상 안됨. 직접 접근 장치이므로, 디스크 상의 임의의 위치에 있는 데이터를 바로 접근할 수 있음. 디스크에서 임의의 블록을 읽거나 기록하는데 걸리는 시간 = 탐구시간 .. 2023. 11. 26.
[데이터베이스] 5장 데이터베이스 설계와 ER모델 (2) 5-3 데이터베이스 설계 사례 1. 설계할 요구사항 명세 회사에는 여러 사원들이 재직한다. 각 사원에 대해 사원번호(고유)/이름/직책/급여/주소를 저장한다. 주소는 시, 구, 동으로 세분해 나타낸다. 각 사원은 0명 이상의 부양가족을 갖는다. 각 부양가족의 이름과 성별을 저장한다. 회사는 여러 프로젝트를 진행한다. 각 프로젝트에 대해 프로젝트번호(고유)/이름/예산/프로젝트진행위치를 저장한다. 각 프로젝트마다 여러명의 사원이 일함. 각 사원이 해당 프로젝트에서 어떤 역할을 수행하고, 얼마 동안 근무해 왔는지 나타냄. 각 프로젝트마다 한 명의 프로젝트 관리자가 있음. 한 사원은 두 개 이상의 프로젝트 관리자가 될 수는 없음. 프로젝트 관리자 임무를 시작한 날짜를 기록. 각 사원은 한 부서에만 속한다. 각 부.. 2023. 11. 26.
[데이터베이스] 5장 데이터베이스 설계와 ER모델 (1) 0. 데이터베이스 설계 - 종류(2): 개념적 데이터베이스 설계, 물리적 데이터베이스 설계 개념적 데이터베이스 설계: 엔티티, 관계, 프로세스, 무결성 제약조건 등을 나타내는 추상화 모델 구축. 물리적 데이터베이스 설계: 물리적인 저장 장치, 접근 방식을 다룸. 엔티티: 조직체에서 데이터베이스에 나타내려는 객체.(사람, 장소, 사물 등) 관계: 두 개 이상의 엔티티들 간의 연관 프로세스: 관련된 활동 (?) 무결성 제약조건: 데이터의 정확성, 비즈니스 규칙을 의미. 1. 개념적 수준의 모델 : 특정 데이터 모델과 독립적으로 응용 세계를 모델링 할 수 있도록 함. 하향식 개발을 위한 틀을 제공. → 인기 개념적 수준의 모델: 엔티티-관계(Entity-Relationship) 모델 + 구현 데이터 모델: 개.. 2023. 11. 25.
[데이터베이스] 4장 관계 대수와 SQL 0. 관계 해석, 관계 대수 - 관계 해석: 원하는 데이터만 명시. 질의를 어떻게 수행할 건지는 명시하지 않는 선언적 언어. - 관계 대수: 어떻게 질의를 수행할 것인가를 명시하는 절차적 언어. SQL의 이론적 기초. 관계 연산자들이 수해오디는 순서 명시. 4-1 관계 대수 1. 관계 대수 기존의 릴레이션들로 새로운 릴레이션 생성. 하나의 릴레이션이나 두 개의 릴레이션을 입력받아 하나의 결과 릴레이션 생성. 2. 관계 연산자 종류(11) - 필수적인 연산자(5) 실렉션(σ): 단항. 한 릴레이션에서 실렉션 조건(=predicate)을 만족하는 "튜플"들을 골라냄. 프로젝션(π): 단항. 한 릴레이션에서 애트리뷰트들의 부분 집합을 골라냄. 실렉션 결과에는 중복이 존재할 수 없지만, 프로젝션 연산 결과에는 .. 2023. 11. 3.
[데이터베이스] 3장 오라클 0. 오라클 오라클 사가 개발한 관계 DBMS 높은 시장 점유율, 높은 신뢰성. 대부분의 운영체제, 하드웨어 지원. 표준 에디션1, 표준에디션, 엔터프라이즈 에디션 판매. 개인용 에디션은 윈도우 os 전용. 3-1 오라클 개요 1. 오라클 개요 (외울 필요 없음) 고성능의 인터넷 플랫폼 제공 (온라인 트랜잭션 처리, 데이터 웨어하우스, OLAP, 전자상거래 등) 다양한 멀티미디어 데이터 타입 관리 가능 2. 오라클의 인터넷 플랫폼 - SQL: if 기능이나 반복, scanf, printf 기능이 없음 - PL/SQL: (Programming Language + SQL) -> 오라클에서 사용. 3. 오라클 아키텍쳐 오라클 서버:한 오라클 인스턴스와 오라클 데이터베이스로 구성됨. 오라클 인스턴스: 백그라운드.. 2023. 11. 2.
[데이터베이스] 2장 관계 데이터 모델과 제약 조건 0. 관계 데이터 모델 : 제안된 데이터 모델들 중 가장 개념이 단순한 데이터 모델. - IBM연구소의 E.F. Codd가 1970년 제안. - 관계 DBMS 시제품: System R(1970년대, IBM연구소) → Oracle로 나중에 시중에 등장 - 1980년대 후반 여러 데이터 모델들이 새로 등장했지만 관계 DBMS가 여전히 널리 사용됨. 1. 관계 데이터 모델이 큰 성공을 거둔 요인(7) 간단한 테이블을 사용 중첩된 복잡한 구조가 없음 집합 위주로 뎅터를 처리 초보 사용자도 쉽게 이해 표준 데이터베이스 응용에 대해 좋은 성능을 보임 다른 데이터 모델에 비해 이론이 잘 정립됨. 설계와 질의 처리면에서 뛰어난 장점을 가짐. 2-1 관계 데이터 모델의 개념 1. 관계 데이터 모델 개념(5) 동일한 구조.. 2023. 10. 12.
[데이터베이스] 1장 데이터베이스 시스템 (2) 1-4 DBMS 언어 1. 데이터 정의어(DDL: Data Definition Language) - : 데이터 베이스 스키마 정의. DDL이 입력되면 DBMS는 사용자가 정의한 스키마 명세를 시스템 카탈로그에 저장. - DDL의 기본 기능(4): 데이터 구조 생성(CREATE TABLE)/ 변경(ALTER TABLE)/ 삭제(DROP TABLE)/ 데이터 접근을 위해 특정 애트리뷰트 위에 인덱스 정의(CREATE INDEX) 2. 데이터 조작어(DML: Data Manipulation Language) : 데이터베이스 내의 원하는 데이터를 조작. - 종류(2): 절차적 언어(C, JAVA), 비절차적언어(SQL, 절차를 안 알려줘도 스스로 처리.) - 특징(2): SUM과 같은 내장 함수를 가짐./ 대화.. 2023. 10. 10.