*Locking : 트랜잭션 중에는 다른 데이터는 엑세스 할 수 없다. 

Locking 과 병행성, 데이터베이스 공유도와 반비례 하다. 병행성은 수는 여러 계산을 동시에 수행하는 시스템이다. 


*DML : 데이터 조작 언어 

(Data Manipulation Language) , 질의어가 있다. 


*이진트리 운행법

Preorder = 전위 : root -> left -> right

Inorder = 중위 : left -> root -> right

Postorder = 후위 : left -> right -> root


root를 기준으로 생각하면된다. 전위 중위 후위 어디에 있는지.


* A B C D Stack 자료구조에 넣고 뺄 수 있는 경우를 구해보자

P(push) P2(pop) 

P-A, P2-A 출력 A 

P-B, P2-B 출력 B

P-C, P2-C 출력 C 

P-D, P2-D 출력 D 


P-A, P-B, P-C, P-D 

P2-D, P2-C, P2-B, P2-A 

출력 DCBA 


순서만 바꾸면 굉장히 많다. 두개만 해보는걸로..


* 데이터베이스의 정의

데이터 베이스는 다음의 특성을 갖는다. 통합된 데이터, 저장된 데이터, 운영데이터, 공용데이터를 갖는다. 


* 트랜잭션 결과 관련 있는 모든 연산들은 완전히 실행되거나 전혀 실행되지 않아야 한다. = Atomicity.


* 데이터베이스의 특징

실시간 접근성, 계속적인 변화, 동시공유, 내용에 의한 참조 (주소에 의한 참조가 아니다.)


* 함수의 종속

쉽게 말해서 무엇에 의해서 무엇이 결정되는 결정이다. 

ex) 학번->이름 


* 데이터베이스 설계중에 물리적 설계가 있다. 

데이터를 디스크 같은 물리적 저장장치에 저장하는것으로 이 단계에서 트랜잭션을 작성한다. 

데이터베이스 설계 단계 중 응답시간, 저장 공간의 효율화, 트랜잭션 처리도와 밀접한 관계를 갖는 부분이다.  이외 개념적 설계, 논리적 설계가 있는데 또 나오면 보겠다. 


* 스키마의 3계층에 대해서 작성해보려 한다. 

총 3개로 나눠지는데 외부 스키마, 개념 스키마, 내부 스키마 이다. 각 스키마 마다 특징을 작성해보면 

외부 스키마 = 데이터베이스의 논리적 구조, 일반 사용자는 SQL을 사용하여 DB 사용

개념 스키마 = 제약 조건, 무결성 규칙을 정의한다. 단순하다.

내부 스키마 = 물리적 저장장치와 밀접하다. 실제 저장하는 방법 

문제 - only one it can exist per database -> 개념 스키마(데이터베이스 한개다.)


1
2
3
DBA) GRANT SELECT ON STUDENT TO U0 WITH GRANT OPTION;
U1)GRANT SELECT ON STUDENT TO U1;
DBA) REVOKE SELECT ON STUDENT FROM U0 CASCADE;
cs
(*CASCADE 는 U0 의 테이블 접근 및 제약 조건들을 없애는 것이다.)


* Entity : This is a "thing" in the real world an independent existence.


* 기본 키 : 튜플을 구분할 수 있다. NULL을 가질 수 없다. 중복은 있을 수 없다. 


* NULL 은 부재 정보를 나타낸다. Missing information 을 의미한다. 


* 시스템 카탈로그 : db에 변화가 있으면 dbms가 만들어낸다. 검색은 하지만 갱신할 수 없다. 스키마 및 객체에 관한 

정보를 가지고 있는 시스템 db 이다. 정보를 유지 관리 한다. 여기서 Data-Dictionary 가 있는데 이는 메타 데이터를 포함한다.


* 정규화 : 잘못 설계된 관계형 스키마 들을 더 작은 속성으로 쪼개는 것이다. 

정규형에는 제1정규형, 제2정규형, 제3정규형, BCNF형, 제4정규형, 제5정규형이 있다. 차수가 증가할수록 제약조건이 늘어난다. 

=>정규화의 목적 : 어떤 릴레이션도 데이터베이스에 표현가능하다. 그리고 중복을 배제한다. 이로인한 삽입, 삭제, 갱신 이상 발생을 방지할 수 있다. 또한, 릴레이션을 재구성할 필요성을 줄일 수 있다. 


* 선형자료구조와 비선형 자료구조

선형자료 구조는 큐, 선형 리스트 흔히 알고있는 배열, 스택 이런것들이 있고 

비선형자료 구조는 그래프, 트리 이런것들이 있다. 


* 릴레이션

릴레이션을 구성하는 튜플을 식별하기 위한 속성들을 키로 사용할 수 있다. 

(*튜플은 속성의 모임이다. 때문에 튜플은 서로 다른 값을 가질 수 있다.)


* 버블정렬

4 3 4 9 2 

라고 하면 1회전만 작성해보고자 한다.

3 4 4 9 2 

가 된다. 

각 자릿수를 index라고 하면 0번째 1번째 

즉 n-1 번째 n 번째를 swap 하는 것이다. 단, 다음 번째 숫자가 더 크면 swap하지 않는다. 


* View

View 란? 접근이 허용된 자료만 제한적으로 보여주는 것 , 가상테이블이다. 물리적으로 존재하지 않는다. 임시적인 작업을 위해 사용된다. 

데이터를 안전하게 보호할 수 있다. 정의된 뷰는 다른 뷰의 정의에 기초가 된다. 하나 뷰를 지우면 기존의 뷰로 형성된 다른 뷰도 지워진다. 

장점 => 데이터 관리를 간단하게 해주고 데이터 독립성 제공 

단점 => 독립적인 인덱스를 가질 수 없다. (인덱스 : 데이터베이스에 원하는 레코드를 빠르게 찾아갈 수 있도록 만들어진 데이터 구조), 뷰의 정의를 변경할 수 없다.