데이터베이스
-
동시성 제어데이터베이스/트랜젝션, 동시성 제어, 회복 2018. 1. 29. 22:30
동시성 제어 : 트랜잭션이 동시에 수행될 때, 일관성을 해치지 않도록 트랜잭션의 데이터 접근을 제어하는 DBMS의 기능 갱신손실 문제두 개의 트랜잭션이 한 개의 데이터를 동시에 갱신할 때 발생 (데이터베이스에서 절대 발생해서는 안됨) 락자신이 데이터를 수정 중이라는 사실을 알리는 방법 락의 개념락은 트랜잭션이 데이터를 읽거나 수정할 때 표시하는 잠금장치이다.자신이 데이터를 락으로 잠그면 다른 트랜잭션은 잠금이 풀릴 때까지 기다려야 한다.락을 사용하면 데이터에 대한 갱신을 순차적으로 진행할 수 있기 때문에 갱신손실 문제를 해결할 수 있다. 락의 유형락은 트랜잭션이 읽기를 할 때 사용하는 공유락, 읽고 쓰기를 할 때 사용하는 배타락으로 나뉜다.트랜잭션이 공유락과 배타락을 사용하는 규칙데이터에 락이 걸려있지 ..
-
트랜잭션데이터베이스/트랜젝션, 동시성 제어, 회복 2018. 1. 29. 22:28
트랜잭션 : DBMS가 데이터베이스를 다룰 때 사용하는 작업의 단위 트랜잭션은 전체가 수행되거나 전혀 수행되지 않아야 한다.트랜잭션은 데이터베이스에 저장된 테이블을 읽어와 주기억장치 버퍼에 저장, 수정한 후 데이터베이스에 다시 저장한다. 트랜잭션의 성질원자성 : 트랜잭션에 포함된 작업은 전부 수행되거나 전부 수행되지 않아야 한다.일관성 : 트랜잭션을 수행하기 전이나 수행한 후나 데이터베이스 무결성이 유지되어야 한다.고립성 : 수행 중인 트랜잭션에 다른 트랜잭션이 끼어들어 변경 중인 데이터 값을 훼손하는 일이 없어야 한다.지속성 : 수행을 성공적으로 완료한 트랜잭션은 변경한 데이터를 영구히 저장해야 한다.트랜잭션 제어 명령어 원자성트랜잭션이 원자처럼 더는 쪼개지지 않는 하나의 작업 단위로 동작해야 한다는 ..
-
정규화(NF)데이터베이스/정규화 2018. 1. 29. 21:55
이상현상의 원인 중 대부분은 두 가지 이상의 정보가 한 릴레이션에 저장되어 있기 때문에 발생한다.이상현상의 원인인 릴레이션을 분해하여 이를 없애는 과정을 정규화라고 한다. 정규화 과정릴레이션은 정규형이라는 개념으로 구분되며, 정규형이 높을수록 이상현상은 줄어든다. 제 1정규형릴레이션의 모든 속성값이 원자값을 가지면 제 1정규형이라고 한다. 제 2정규형릴레이션이 제1정규형이고 기본 키가 아닌 속성이 기본키에 완전 함수 종속일 때 제 2정규형이라고 한다.완전 함수 종속 (FD)A와 B가 릴레이션 R의 속성이고 A → B의 종속성이 설립할 때, B가 A의 속성 전체에만 함수종속 하는 경우 제 3정규형릴레이션이 제 2정규형이고 기본키가 아닌 속성이 기본키에 비이행적으로 종속할 때 제 3정규형이라고 한다.이행적 ..
-
함수 종속성데이터베이스/정규화 2018. 1. 29. 21:50
함수종속성의 개념정규화를 하기 위해서는 테이블을 분석해 기본키, 함수 종속성을 파악해야 한다.어떤 속성 A의 값을 알면 다른 속성 B의 값이 유일하게 정해질 때 함수적으로 종속한다. 라고 한다.릴레이션의 속성 간에 함수적으로 종속하는 성질을 함수종속성 이라고 한다. 함수 종속성 다이어그램함수 종속성을 나타내는 표기법으로 릴레이션의 속성을 직사각형, 함수 종속성을 화살표로 나타낸다. 함수 종속성 규칙X, Y, Z가 릴레이션 R에 포함된 속성의 집합이라고 할 때,함수 종속성에 관한 다음과 같은 규칙이 성립한다.함수 종속성과 기본키릴레이션의 함수 종속성을 파악하기 위해서는 우선 기본키를 찾아야 한다.기본키는 릴레이션의 모든 속성에 대해 결정자이다.함수 종속성은 보통 속성의 의미로 정해지지만 릴레이션에 저장된 ..
-
ER 모델을 관계 데이터 모델로 사상데이터베이스/데이터 모델링 2018. 1. 29. 21:26
완성된 ER 모델은 실제 데이터베이스로 구축하기 위해서 논리 모델링 단계를 거친다.이 단계에서 사상이 이루어진다. 사상은 각각 개체 타입 유형과 관계 타입의 유형에 따라 다른 방법으로 진행된다. 개체 타입의 사상강한 정규 개체 타입정규 개체 타입의 경우 대응하는 릴레이션을 생성한다. 약한 개체 타입약한 개체 타입에서 생성된 릴레이션은 자신의 키와 함께 강한 개체 타입의 키를 외래키로 사상해 기본키를 구성한다. 관계 타입의 사상이진 관계 타입을 사상하는 방법은 네 가지가 있다.방법1 오른쪽 개체 타입 E2를 기준으로 관계 R을 표현한다. E1(KA1, A2)E2(KA2, A4, KA1)방법2 왼쪽 개체 타입 E1을 기준으로 관계 R을 표현한다. E1(KA1, A2, KA2)E2(KA2, A4)방법3 단일 ..
-
ER 모델데이터베이스/데이터 모델링 2018. 1. 29. 20:56
세상의 사물을 개체와 개체 간의 관계로 표현개체는 개체의 특성을 나타내는 속성에 의해 식별되며 개체끼리 관계를 가짐ER 모델은 개념적 모델링 단계에서 사용하기 때문에 DBMS와 무관하게 설계할 수 있다. ER 모델은 개체 간의 관계를 ER 다이어그램이라는 표준화된 그림으로 표현한다. 개체와 개체 타입개체 : 정보를 가지고 있는 독립적인 실세, 비슷한 속성을 가진 개체 타입을 구성하며 개체 집합으로 묶임 개체 타입의 ER 다이어그램 표현ER 다이어그램상에서 개체 타입은 직사각형으로 나타낸다. 기호 의미 직원 강한 개체 타입 부양 가족 약한 개체 타입 개체 타입의 유형개체 타입강한 개체 : 다른 개체의 도움 없이 독자적으로 존재 할 수 있는 개체약한 개체 : 독자적으로는 존재할 수 없고 반드시 상위 개체 타..
-
데이터 모델링의 개념데이터베이스/데이터 모델링 2018. 1. 29. 20:44
현실 세계에 복잡한 개념을 단순화하고 추상화 시켜 데이터베이스화 하는 과정 데이터 모델링 과정 요구사항 수집 및 분석 요구사항 수집 방법 실제 문서를 수집하고 분석한다. 담당자와 인터뷰, 설문조사를 통해 요구사항을 직접 수렴한다. 비슷한 업무를 처리하는 기존의 데이터베이스를 분석한다. 각 업무와 연관된 모든 부문을 살펴본다. 개념적 모델링 수집, 분석한 요구사항을 토대로 업무의 핵심적인 개념을 구분하고 전체적인 뼈대를 만드는 과정 개체를 추출하고 각 개체들 간의 관계를 정의하여 ER 다이어그램을 만드는 과정 까지를 말함 논리적 모델링 ER 다이어그램을 실제 데이터 베이스로 구현하기 위한 모델을 만드는 과정 논리적 모델링의 과정 상세 속성들을 모두 추출 개념적 모델링에서는 핵심속성만 추출하였다면, 논리적 ..
-
PL/SQL데이터베이스/데이터베이스 프로그래밍 2018. 1. 29. 20:37
데이터베이스 응용 프로그램을 작성하는 데 사용하는 오라클의 SQL 전용 언어 SQL문에 변수, 제어, 입출력 등의 기능을 추가하여 SQL만으로 처리하기 어려운 문제를 해결한다.PL/SQL로 개발한 프로그램은 프로시저로 저장 할 수 있으며 필요할 때마다 호출하여 사용할 수 있다.PL/SQL은 선언부와 실행부로 구성되며, 선언부에서는 변수와 매개변수를 선언하고, 실행부에서는 프로그램 로직을 구현한다. 프로시저, 트리거, 사용자 정의 함수의 공통점과 차이점 프로시저프로시저는 일반 프로그래밍 언어에서 사용하는 함수와 비슷한 개념이다. 삽입 작업을 하는 프로시저Book 테이블에 한 개의 투플을 삽입하는 프로시저 CREATE OR REPLACE PROCEDURE InsertBook( myBookID IN NUMBE..
-
데이터베이스 프로그래밍의 개념데이터베이스/데이터베이스 프로그래밍 2018. 1. 29. 20:35
데이터베이스 프로그래밍의 방법 SQL 전용 언어를 사용하는 방법 SQL 자체의 기능을 확장하여 변수, 제어, 입출력 등의 기능을 추가한 새로운 언어를 사용하는 방법 Oracle은 PL/SQL 언어를 사용하며, SQL Server는 T-SQL이라는 언어를 사용함 일반 프로그래밍 언어에 SQL을 삽입하여 사용하는 방법 자바, C, C++ 등 일반 프로그래밍 언어에 SQL 삽입하여 사용하는 방법 일반 프로그래밍 언어로 작성된 응용 프로그램에서 데이터베이스에 저장된 데이터를 관리, 검색함 삽입된 SQL문은 DBMS의 컴파일러가 처리함. 웹 프로그래밍 언어에 SQL을 삽입하여 사용하는 방법 호스트 언어가 JSP, ASP, PHP 등 웹 스크립트 언어인 경우 4GL 데이터베이스 관리 기능과 비주얼 프로그래밍 기능을..