학교 수업
-
Ch15. 디스크 저장 장치, 기본 파일 구조, 해싱 및 최신 저장 아키텍처학교 수업/2-2 데이터베이스 기초 2021. 10. 30. 00:46
1. 메모리 계층 구조와 저장 장치 데이터베이스는 물리적으로 레코드들의 파일 형태로 저장됨 저장 장치 종류 기본 저장 장치(Primary storage, 주기억장치) - CPU가 직접 처리할 수 있는 장치 - 메인 메모리와 캐시 메모리 보조 저장 장치(Secondary storage, 보조기억장치) - 대용량 - 플래시 메모리, 자기 디스크, 광 디스크 3차 저장 장치(Tertiary storage) - 오프라인 상태로 있다가 유저가 직접 로딩해야 그제서야 온라인으로 변하여 접근할 수 있는 방식 - 광 디스크, 마그네틱 테입, 테입 쥬크박스 기본 저장 장치와 나머지 저장 장치의 큰 차이는 CPU가 직접 접근할 수 있느냐임 위로 갈수록 비싸고 저용량이지만 빠르고, 아래로 갈수록 느리지만 대용량이고 쌈 2...
-
Ch09. SQL 프로그래밍 기법 소개학교 수업/2-2 데이터베이스 기초 2021. 10. 29. 23:36
1. 데이터베이스 프로그래밍 대화식 인터페이스와 달리 응용 프로그램에서 데이터베이스를 접근하기 위한 방식 사용하는 이유? - 대화식 인터페이스는 편리하지만, 기능이 충분하지 않음 - 그래서 대부분의 데이터베이스 연산은 응용프로그램을 통해 일어남(ex 웹 어플리케이션) 데이터베이스 프로그래밍 접근방법 세가지 범용 프로그래밍 언어에 데이터베이스 언어를 임베디드하는 방법(프리컴파일러 or 프리프로세서) 데이터베이스 함수의 라이브러리 사용(호스트언어에서 데이터베이스를 호출하기 위함. API 제공하는 것) 새로운 데이터베이스 언어를 사용하는 것(DBPL) - 이 경우 임피던스 불일치(impedance mismatch)가 최소화될 수 있음 임피던스 불일치(impedance mismatch)란? 두 프로그래밍(데이터..
-
Ch13. RDB의 함수적 종속성과 정규화 이론학교 수업/2-2 데이터베이스 기초 2021. 10. 24. 22:26
1. 릴레이션 스키마를 설계하는 몇 가지 개략적인 지침 좋은 관계형 스키마 논리적/개념적 레벨 : 릴레이션 안의 데이터를 얼마나 잘 표현하고 있는가 구현/저장 레벨 : 기본 릴레이션의 스키마가 어떻게 구성되어 있는가 릴레이션 스키마 설계의 수준(퀄리티)을 결정하기 위한 척도로 사용할 수 있는 네 가지 지침 애트리뷰트들의 의미가 스키마에서 명확한지 확인함 튜플들에서 중복되는 값들을 줄임 튜플들에서 널 값들을 줄임 가짜 튜플을 허용하지 않음 첫번째 가이드라인(지침) 의미가 쉽게 전달되도록 릴레이션 스키마를 설계한다. 여러 개의 엔티티 타입과 관계 타입의 애트리뷰트들을 섞어서 하나의 릴레이션으로 구성하면 안된다. -> 하나의 엔티티 타입이나 관계 타입을 하나의 스키마로 만들어야함 2. 튜플에서 중복된 정보와 ..
-
Ch 03. Entity-Relationship(ER) 모델을 사용한 데이터 모델링학교 수업/2-2 데이터베이스 기초 2021. 10. 12. 23:02
개념 데이터 모델링은 성공적인 데이터 설계에 있어서 매우 중요한 과정임 Entity-Relationship(ER) model은 인기있는 고수준 개념 데이터 모델임(개념 스키마를 만듦) 1. 데이터베이스 설계와 기능적 설계 데이터 모델 설계는 데이터 설계와 데이터베이스 응용 설계로 나뉨. 서로 상호작용을 하여 응용이 일어남 1. 데이터베이스 설계 - 데이터 설계 - 논리 설계 - 물리적 설계 데이터베이스 요구사항들을 받아 개념적 설계를 하고 고수준의 데이터 모델로 개념 스키마를 만들어 논리 설계를 함 논리 설계는 논리적 스키마를 만들어서 물리적 설계를 하게 됨(특정 DBMS의 데이터 모델로 표현됨) 논리적 설계를 기준으로 윗 부분은 DBMS에 상관없이 독립적으로 설계하고, 이후엔 DBMS에 기능에 맞게 설..
-
Ch 08. 관계 대수와 관계 해석학교 수업/2-2 데이터베이스 기초 2021. 10. 12. 18:29
1. 관계 대수와 관계 연산자 관계 대수 관계를 조작하기 위한 연산자 검색 요구를 명세하는데 사용 질의 결과는 릴레이션 형태로 표현됨 관계 연산자 SELECT($\sigma$), PROJECT($\pi\$) 집합 연산자 - 합집합(UNION) $\cup$, 교집합(INTERSECTION) $\cap$, 차집합(DIFFERENCE) -, 카티션 곱(CARTESIAN PRODUCT) $\times$ JOIN 연산자 $\Join$ 그 외 다른 관계 연산자들 - DIVISION, OUTER JOIN, AGGREGATE FUNCTIONS 2. 관계 연산자 SELECT $\sigma_{}$(R) 로 표현함 은 다음와 같은 형태를 갖는 여러 개의 절로 구성되어 있음 ex) EMPLOYEE 테이블에서 4번 부서에 속하..
-
[Oracle SQL] ON UPDATE CASCADE 대체 방법학교 수업/2-2 데이터베이스 기초 2021. 10. 12. 00:00
Oracle SQL은 ON DELETE CASCADE를 지원하지만, ON UPDATE CASCADE를 지원해주지 않습니다. 그래서 PRIMARY KEY를 변경해야하는데, 동시에 FOREIGN KEY도 값이 변경되게 만들어야 하는 상황에서는 TRIGGER를 만들어서 변경해야 합니다. 먼저 데이터베이스를 하나 만들겠습니다. 데이터베이스는 책에 나온 EMPLOYEE 테이블과 나머지들을 변형해서 만들어봤습니다. EMPLOYEE : 직원 정보가 들어있는 테이블 Name : 직원의 이름 Ssn : 직원의 사회보장번호(우리나라로 치면 주민등록번호) Dno : 부서 번호 DEPARTMENT : 부서 정보가 들어있는 테이블 Dname : 부서의 이름 Dnumber : 부서 번호 Mgr_ssn : 부서의 총책임자 사회보장..
-
Ch 06. 더 복잡한 SQL 검색 질의학교 수업/2-2 데이터베이스 기초 2021. 9. 28. 20:44
1. 널 값을 포함한 비교와 세 값을 갖는 논리 NULL = 명시되지 않은 값을 나타내는데 사용함 알려지지 않은 값(ex 집전화가 없는 사람) 이용할 수 없거나 보류해 둔 값(ex 집전화가 있지만 공개하지 않은 사람) 적용할 수 없는 애트리뷰트(ex 졸업 대학교에 고졸이 값을 넣을 수 없음) 각각의 널 값은 다른 널 값과 서로 다르다고 생각함 널 값 둘이 비교를하면 값이 같은지 다른지 모르므로 UNKNOWN으로 생각함 그래서 SQL에서의 논리는 TRUE, FALSE, UNKNOWN 세 가지 값을 가진 논리를 사용함 SQL은 질의에서 애트리뷰트 값이 널인지 검사할 수 있음. 하지만 널과 비교하기 위해서는 IS나 IS NOT을 사용함(널 값은 서로 다르다고 생각하므로 =, 를 사용할 수가 없음) 그래서 조인..
-
Ch 05. 기본 SQL학교 수업/2-2 데이터베이스 기초 2021. 9. 14. 18:50
SQL 소개 상업적 관계 데이터베이스의 표준 언어 포괄적인 데이터베이스 언어 데이터 정의, 질의, 갱신을 위한 문들을 가지고 있음(데이터 정의어 DDL과 데이터 조작어 DML을 포함함) 기능 데이터베이스에서 뷰를 정의함 보안과 권한 관리를 명시함 무결성 제약 조건을 정의함 트랜잭션 제어를 명시하는 기능들을 가지고 있음 JAVA와 C/C++ 같은 범용 프로그래밍 언어로 작성된 프로그램에 SQL 문들을 삽입하기 위한 기능도 제공함 SQL의 데이터 정의와 데이터 타입 SQL은 관계 데이터 모델의 릴레이션, 튜플, 애트리뷰트를 각각 테이블(표), 행, 열이라고 부름 SQL 데이터 정의어는 CREATE, ALTER, DROP이 있음 SQL안에는 schema evolution(스키마 진화)이라는 명령어가 있음 테이..