본문 바로가기
반응형

IT 이론/데이터베이스30

데이터베이스 병행제어 기법 정리 1. 병행제어의 목적 데이터베이스 일관성 유지 일관성을 유지하면서, 데이터베이스 공유 최대화 시스템 활용도 최대화 사용자 응답시간 최소화 2. 병행제어 실패 현상 2.1. Dirty Write 갱신 분실(Lost Update)라고도 한다(정보처리기사 기준) 같은 데이터에 동시에 두 개 이상의 트랜잭션이 값을 바꾸고자 함 2.2. Dirty Read 비완료 의존성(Uncommitted Dependency)라고도 한다(정보처리기사 기준) 아직 commit되지 않은 트랜잭션의 내용을 읽으려고 함 2.3. Non-repeatable Read 모순성(Inconsistency)이라고도 한다(정보처리기사 기준) 동일 트랜잭션에서 동일한 대상을 여러번 읽을 때 그 사이에 수정 또는 삭제가 반영되어 값이 변경됨 2.4... 2019. 12. 7.
전위 순회(Preorder), 후위 순회(Postorder), 중위 순회(Inorder) A B C 위와 같을때 전위 순회(Preorder)Root - Left - Right위 앞 뒤 (A - B - C) 중위 순회(Inorder)Left - Root - Right앞 위 뒤 (B - A - C) 후위 순회(Postorder)Left - Right - Root앞 뒤 위 (B - C - A) 전위와 중위가 헷갈릴 수 있다. 후위는 명확하다.중위가 왼쪽에서 오른쪽으로 순서대로 가는 것이라고 위우자.중위가 Left - Root - Right이다.중위가 중간(Root)이 중간(순서상의 중간)에 있다. 2016. 10. 1.
[시험대비] 실무적으로 보는 데이터베이스 설계 순서 데이터베이스의 설계 단계는 아래와 같다 요구 분석 -> 개념적 설계 -> 논리적 설계 -> 물리적 설계 -> 구현 대부분은 이 단계가 구체적으로 뭘 하는 단계인지 모르고 단순암기 하는 경우가 많다. 학교나 회사에서 실제로 여러번 데이터 베이스 설계를 해봤음에도 개념 스키마 설계, 트랜젝션 모델링, 물리적 구조로 변환 등의 용어가 너무 와닿지 않기 때문이다. 이론적으로 먼저 알아보자요구분석 : 요구조건 명세서 작성개념석 설계 : 개념 스키마, 트렌젝션 모델링, E-R 모델 작성논리적 설계 : 스키마 설계, 트렌젝션 인터페이스 설계, 논리적 자료 구조로 변환물리적 설계 : 논리적으로 표현된 데이터를 물리적 저장장치에 저장할 수 있는 구조의 데이터로 변환 무슨 말인지 알아듣기 힘들다. 좀 더 실무적으로 이해해.. 2015. 10. 17.
[시험대비] 데이터베이스 모델의 종류와 특징을 쉽게 이해하자! 데이터 베이스 모델은 크게 관계형 데이터 모델, 계층형 데이터 모델, 네트워크형 데이터 모델이 있다. 하지만 중요한건 실제 사용하는 대부분의 DBMS는 관계형 데이터베이스 모델을 따르고 있다는 것이다. 계층형, 네트워크형은 어떤 개념인지만 어렴풋이 이해하고 있으면 된다. 계층형 데이터 모델 - 트리 형태의 수직적인 데이터 모델이다. - 1:N의 대응 관계만 존재한다. - 상위 레코드 삭제시 연쇄 삭제(Triggered Delete)가 일어난다. - 개체들 간에는 Cycle이 허용되지 않는다. - 관계형 모델에서의 Entity를 계층형에선 Segment라 부른다. - 파일 시스템을 생각하면 이해하기 쉽다. 폴더 안에 하위 폴더 안에 파일이 있는 그런 형태이다. 여러 하위 폴더가 한 상위폴더에 있을 수는 있.. 2015. 10. 17.
SQL에서 DDL, DML, DCL, TCL의 구분 데이터베이스 언어는 보통 DDL, DML, DCL로 나뉜다. 트랜젝션 제어를 위한 별도의 명령을 TCL로 구분하여 4개로 분류하기도 한다. 이 언어들은 의미를 외우기보단 단어의 뜻을 알고 어떤 명령어가 있는지 보는게 이해하기 쉽다. DDL : Data Definition Language데이터 정의 언어이다. DB를 구성할때 쓰인다.CREATE, ALTER, DROP, RENAME, TURNCATE 등 DML : Date Manipulation Language데이터 조작 언어이다. 데이터를 실질적으로 사용할때 쓰인다. 사용자와 데이터베이스간의 인터페이스를 제공해 준다.SLEECT, UPDATE, INSERT, DELETE 등 DCL : Data Control Language데이터 제어 언어이다. 제약조건,.. 2015. 10. 16.
[시험대비] 외부 스키마, 개념 스키마, 내부 스키마를 구분하자! 굳이 이런 개념으로 나눠 둔 이유는 잘 모르겠지만, 배우는 입장인 우리는 이 의미를 명확히 구분할 수 있어야 한다. 외부 스키마(External Schema, Sub Schema) 응용프로그램 개발자의 관점에서 보는 스키마. 정확한 표현은 아니지만 쉽게 View라고 생각하면 된다. 겉으로 보이는 DB, Table의 형태인 것이다. 사용 주체나 응용 프로그램에 따라서 같은 데이터가 같은 구조로 저장되어 있는 데이터베이스에서 바라보는 관점이 다를 수도 있다. 누군가는 SELECT * FROM table에서 특정 테이블의 모든 에트리뷰트와 데이터들을 바라보고 누군가는 JOIN이나 MERGE를 통해 여러 테이블을 동시에 조회 할 수도 있다. 그들이 바라보고 있는, 우리가 DBMS 툴에서 SELECT 쿼리를 던졌.. 2015. 10. 16.
[시험대비] 데이터베이스 필수 암기 사항 가급적 영어로 외워두자! 번역된 용어는 시험마다 해석이 달라서 햇갈릴 수 있다. 데이터베이스의 정의 Integrated data : 데이터의 통합된 모임 Stored data : 저장 매체에 저장된 정보자료 Operational data : 응용해서 활용가능한 데이터 Shared data : 여러 주체들이 함깨 사용가능한 데이터 데이터베이스의 특징 Real Time Accessibility : 실시간으로 데이터의 변경사항을 확인하고 불러올수 있음 Continuous Evolution : 지속적인 삽입, 갱신, 삭제가 가능함 Concurrent Sharing : 여러 사용자가 동시에 데이터를 이용할 수 있음 Content Reference : 데이터 내용으로써 데이터를 찾을 수 있음 기존 파일 처리방식의 .. 2015. 10. 16.
분산 데이터베이스의 목표와 장단점 분산 데이터베이스의 목표 위치 투명성 (Location Transparency) 액세스하려는 데이터베이스의 실제 위치를 알 필요없이 단지 데이터베이스의 논리적인 명칭만으로 액세스할 수 있음 중복 투명성 (Replication Transparency) 동일 데이터가 여러 곳에 중복되어 있더라도 사용자는 마치 하나의 데이터만 존재하는 것처럼 사용하고, 시스템은 자동으로 여러 자료에 대한 작업을 수행함 병행 투명성 (Concurrency Transparency) 분산 데이터베이스와 관련된 다수의 트랜잭션들이 동시에 실현되더라도 그 트랜잭션의 결과는 영향을 받지 않음 장애 투명성 (Failure Transparency) 트랜잭션, DBMS, 네트워크, 컴퓨터 장애에도 불구하고 트랜잭션을 정확하게 처리함 분산 데.. 2014. 10. 17.
관계대수와 관계해석 관계대수(Relational Algebra)는 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적인 방법이다.관계해석(Relational Calculus)은 원하는 정보가 무엇이라는 것만 정의하는 비절차적인 방법이다. 관계 대수의 설명으로 옳은 것 - 릴레이션 조작을 위한 연산의 집합으로 피연산자와 결과가 모두 릴레이션이다. - 일반 집합 연상과 순수 관계 연산으로 구분된다. - 질의에 대한 해를 구하기 위해 수행해야 할 연산의 순서를 명시한다. 관계 해석의 설명으로 옳은 것 - 관계 해석은 원래 수학의 프레디킷 해석에 기반을 두고 있다. 2014. 5. 24.
[데이터베이스] 데이터베이스 설계 과정 전체 프로세스 : 요구 분석 - 개념적 설계 - 논리적 설계 - 물리적 설계 - 구현 1. 요구조건 분석 데이터베이스를 사용할 사람들로부터 필요한 용도를 파악하는 것. 요구조건 명세서를 작성하는 단계이다. 2. 개념적 설계 트렌젝션 모델링과 개념 스키마 모델링을 수행하는 단계이다. E-R 다이어그램을 그리고 개념 스키마를 설계한다. 3. 논리적 설계(데이터 모델링) DBMS에 논리적 스키마를 설계하는 단계이다. (DB에서 테이블의 구조 설계 - 애트리뷰트, 데이터 타입 등) 트렌젝션의 인터페이스 설계도 이 단계에서 이루어진다. 4. 물리적 설계(데이터 구조화) 위 설계된 데이터베이스를 실제 시스템 상에 구현하는 단계이다. 어떤식으로 설계되었느냐에 따라 구조가 많이 달라질 수 있고, 잘못된 물리적 설계는 .. 2014. 5. 24.
[데이터베이스] 스키마(Schema)의 3계층 * 교재에 있는 내용과는 살짝 다르게 실무적인 입장에서 이해하기 쉽도록 정리된 내용이니, 이론적인 부분과 살짝 차이가 있을수도 있습니다. 1. 외부 스키마 - 데이터베이스 사용자(응용 프로그래머 포함) 입장에서 본 스키마이다. - 한 논리적인 부분(큰 DB의 한 테이블이라고 생각 해 볼 수도 있다.) 2. 개념 스키마 - 데이터베이스 설계자(데이터베이스 관리자) 입장에서 본 스키마이다. - 여러 논리적인 부분들(테이블들)을 총괄한 전체적인 구조를 말한다. 3. 내부 스키마 - 시스템 프로그래머(DBMS 설계자 포함) 입장에서 본 스키마이다. - 파일 저장 형태, 저장 및 탐색 알고리즘 등의 구조에 관한 것이다. 2014. 5. 24.
[데이터베이스] 정규화(Normalization) Anomaly(이상) 현상을 해결하기 위해 데이터 베이스를 세분화 하는 과정 Anomaly의 종류 : 삽입 이상(Insertion Anomaly), 삭제 이상(Deletion Anomaly), 갱신 이상(Update Anomaly) 정규화의 과정 비정규형 : 아래 모든 경우를 만족하지 않는 경우1NF : 모든 도메인이 원자값. 한 에트리뷰트에는 하나의 값만 들어가야 한다.2NF : 부분적 함수 종속을 제거해야 한다. 즉, 완전 함수적 종속 관계를 만족한다.3NF : 이행적 종속 관계를 제거 해야 한다.BCNF : 결정자가 모두 후보키인 경우. 어떤 속성도 키가 아닌 속성에 대해서는 완전 종속할 수 없다.4NF : 다치 종속성이 제거 되어야 한다.5NF : 조인 종속성이 만족 되어야 한다. ※ 첫 글자를 .. 2014. 5. 24.
[데이터베이스] 해싱(Hashing) 관련 용어 1. 해시 함수(Hash function) : 데이터를 키로 변환하는 함수. 예를 들어 길고 복잡한 문자열을 짧고 단순한 문자열(또는 수열)로 변경2. 홈 주소(Home address) : 해시 함수에 의해 변환된 키값의 주소3. 해시 테이블(Hash table) : 해시 함수가 키값을 생성할때 참조하는 테이블4. 버킷(Bucket) : 하나의 주소를 갖는 파일의 한 구역5. 슬롯(Slot) : 한개의 레코드를 저장 할 수 있는 공간. 한 버킷 안에 여러개의 슬롯이 있다.6. 충돌(Collision) : 다른 레코드가 같은 키를 가지는 충돌 현상. 레코드는 버킷의 다음 슬롯에 들어가게 된다.7. 동의어(Synonym) : 충돌이 일어난 레코드의 집합. 키값이 같은 레코드의 집합으로, 동의어가 슬롯의 갯수.. 2014. 5. 24.
[데이터베이스] 로킹(Locking) 기법과 로킹 단위 데이터베이스에서의 로킹(Locking) 단위란 말 그대로 "잠그는 단위"를 말 한다. 로킹 기법이란 하나의 트랜잭션이 데이터를 액세스하는 동안 다른 트랜잭션이 그데이터 항목을 액세스할 수 없도록 하는 병행 제어 기법이며, 로크는 사용하는 데이터 객체이다. 쉽게 말하면, 한번에 한명만 사용할 수 있게 하는 단위를 "로킹 단위" 라고 한다는 것이다. 예를들어 어떤 프로젝트의 소스를 여러 사람이 동시에 작업할 경우 파일이 꼬일 수도있다. 그래서 누군가가 특정 파일을 건들고 있을때, 다른 사용자는 그 파일을 건들지 못하도록 하는데 안전한데, 이게 로킹이다. 그리고 여 경우에선 로킹 단위가 파일이 된다. 이런 방법도 있지만 더 높은 안전성을 위해서, 어떤 사람이 어떤 폴더에 있는 파일을 작업하고 있을때 다른 사람.. 2014. 5. 22.
여러가지 관계해석식 표현법과 예제 *관계 대수와의 비교 관계 대수식은 절차적(procedural)인 반면에 관계 해석식은 비절차적이다. 그러나 두 언어의 표현력(expresive power)은 동등하다. 튜플 관계 해석식 셀렉트 연산 : { t | EMPLOYEE(t) and t.SALARY>5000 } 프로젝트 연산 : { t.FNAME, t.LNAME | EMPLOYEE(t) } 셀렉트 + 프로젝트 : { t.FNAME, t.LNAME | EMPLOYEE(t) and t.SALARY > 50000 } Ex1) Research 부서에서 일하는 모든 사원들의 이름과 주소를 검색하라 { e.FNAME, e.LNAME, e.ADDRESS | EMPLOYEE(e) and (∃d) (DEPARTMENT(d) and d.DNAME = ‘Resea.. 2013. 1. 12.
여러가지 관계대수식 표현법과 예제 SELECT 연산 (σ로 표기) σc(R) - 릴레이션 R에서 선택조건 c를 만족하는 튜플들을 선택한다. - 조건 c는 R의 애트리뷰트들에 대한 boolean expression이다. σ DNO=4 (EMPLOYEE) σ SALARY>30000 (EMPLOYEE) σ (DNO=4 AND SALARY>25000) OR DNO=5 (EMPLOYEE) σ (DNO=4 AND SALARY>25000) OR (DNO=5 AND SALARY>30000) (EMPLOYEE) PROJECT 연산 (Π로 표기) Πc(R) - 릴레이션 R에서 애트리뷰트 리스트 L에 명시된 애트리뷰트들만 선택한다. - 결과 릴레이션 L은 수학적 집합이다. => 중복된 튜플들을 제거한다. Π FNAME,LNAME,SALARY (EMPLOYE.. 2013. 1. 12.
[데이터베이스] Super Key, Candidate Key, Primary Key 1. Super Key : 어떤 릴레이션의 어떠한 튜블들도 같은 값을 가지지 않는 Atrribute, 또는 Atrribute 조합 2. Key : 슈퍼키를 수정하는 Attribute 중 하나라도 빠지면 Super Key가 될 수 없는 Super Key (최소 슈퍼키) 3. Candidate key : 모든 Key는 Candidate Key가 될 수 있다. 4. Primary key : Candidate key중 선택된 한개의 기본 키 ex) Car Relation CAR {지역, 번호, 모델 명, 제작 년도, 고유번호} 는 두개의 키를 가진다 {지역, 번호} 와 {고유번호} 이들은 슈퍼키인 동시에 키이고, Primary Key가 될 수 있는 Candidate Key이다. {모델명, 고유번호} 또한 슈퍼키.. 2013. 1. 12.
[데이터베이스] Null값이 의미하는 두 가지 1. Not applicable (해당사항 없음) : 외국인의 한국 주민등록 번호, 내 여자친구의 신상 정보, 고졸자의 학사학위 정보 등 존재하지 않음이 확실한 애트리뷰트 값. 2. Unknown (모름) : Value exists but is missing, It is unown whether the attribute value exist 2-1. 존재하지만 누락 된 경우 : 사람의 키, 몸무게 등 존재하지 않을 수가 없는 것. 2-2. 존재 하는지조차 모름 : 휴대폰 번호, 차번호 등 2013. 1. 12.
반응형