본문 바로가기

728x90

ComputerScience/Database

(26)
DB - 10. E-R Model 1. Desing Phases 1. (요건분석) 응용프로그램 사용자들이 어떤 data를 필요로 할지 예상해본다. 2. (개념적 설계) 사용자들이 필요로 할 data들을 기반으로 database schema를 작성한다. abstract한 schema를 작성하는 것이다. 이때 사용하는 모델이 ER Model이다. db에 사용될 삽입, 삭제, 갱신 등의 연산 또한 describe해야 한다. 3. (Normalization) : redundancy나 incompleteness 등의 문제가 생기면 바로잡는 과정을 거친다. 4. (구현) ER Model 컨셉을 구현하는 단계이다 (ER model -> RDB) * avoid redundancy : 동일한 데이터가 db에 반복적으로 나타나는 schema는 피해야 한다..
DB - 9. JDBC 1. JDBC - sql로 database를 구축하는 것 만으로는 응용프로그램을 개발하기 어렵다. - 사용자와 interfacing을 할 수 있는 응용프로그램을 위한 언어가 필요하다 (general purpose language) - 따라서 두 언어간의 이질성 극복을 위한 DB API가 필요하다. - jdbc는 주언어가 java일때 database와 연결하는 java api이다. 1. 가장 먼저 java로 만든 응용프로그램을 db서버와 연결한다. (getConnection) 2. "statement" object를 만들면 이 객체를 통해 db서버와 내용을 주고받게 된다. (Do Actual Work) 3. 생성한 statement객체를 사용해서 query들을 수행하게 된다. (select from gro..
DB - 8. More SQL statements(3) 1. Deletion - 아래 예시를 보면 salary가 삭제될때마다 평균이 변하는 것 아닌가? 이런 모호한 해석이 가능하다. - 따라서 sql에서는 select문을 미리 실행해서 값으로 결과를 대체하여 해석의 모호성을 해결한다. 2. Insertion - 두번째 예시도 해석의 모호성이 존재한다. 위의 방법과 마찬가지로 select를 먼저 수행해서 값으로 대체한 후 insert를 수행한다. 3. Update - 세번째 예시를 보면 update가 실행되면서 avg가 바뀌는 모호함이 생길 수 있으니 (select avg)를 먼저 확보해서 상수로 대체하고 update가 수행되어야 한다. - 위의 예시에서도 의도대로 작업을 하기 위해서는 구문의 실행 순서가 위에서 아래로 되어야 한다. - case를 사용하면 다..
DB - 7. More SQL statements(2) 1. Exists - exist는 ()안에서 튜플이 하나도 안나온다면 F 하나라도 나왔다면 T를 반환한다. - subquery는 outer query의 횟수만큼 계속 실행된다. section이 1000개라면 subquery도 1000번 돌아야 하는 것이다. - 두 쿼리가 correlated 되어있기 때문이다 (S.course_id 때문) - 이전시간에 배운 in의 경우는 subquery는 딱한번 실행되고 나온 결과로 바깥 query가 돈다. - 두 쿼리가 correlated 되어 있지않기 때문이다 - not exist는 튜플이 하나도 나오지 않아야 true가 된다. - 참고로 subquery에 첫번째 쿼리는 한번 수행된 결과로 대체가 가능하지만 두번재 쿼리는 매번 학생의 id를 가지고 반복된다. 2. U..
DB - 6. More SQL statements(1) 1. Aggregate Functions - 집계합수들을 살펴보자. - 첫번째 예시는 instructor 중에서 comp.sci인 교수들의 salary 평균을 구해준다. - 두번째 예시는 spring 2018에 강의한 distinct한 (중복제거) 교수들의 수를 구해준다. - 세번째 예시는 course의 tuple수를 구해준다. 2. group by - group by를 사용하는 예시를 살펴보자 - dept_name으로 그룹을 묶고 결과는 dept_name과 평균 salary를 tuple로 만들어 반환한다. - 만약 위 예시에서 select에 count(ID)를 추가하면 comp. sci. tuple에 3이라는 column이 추가될 것이다. - 또한 group by에 여러개가 올 수 있으며 직관적으로 여..
DB - 5. Schema Diagram, Relational Algebra 1. Schema Diagram 분석 - 사각형 하나가 relation에 해당한다. - 각 relation들의 reference관계를 화살표로 나타내고 있다. - relation에서 밑줄이 그어진 column이 Primary key이다. - takes relation의 경우 (ID, course_id, sec_id, semester, year)가 primary key이다. 이 경우는 composite key이기도 하다. - 하나의 relation에서 다른 relation으로 foreign key를 통해 연결된다. 화살표가 출발하는 쪽이 foreign key, 화살표가 도착하는 곳이 primary key여야 한다. - 복수개의 column으로 이루어진 foreign key도 존재할 수 있다. 복수개의 co..
DB - 4. Keys (at relational DB) 1. Superkey - tuple의 고유식별자이다. - 고유식별성만 지니면 superkey가 된다. - id나 주민번호 등 단 하나의 튜플만 지니고 있는 column을 말한다. - table에서 하나의 colum이 key가 될 수도 있고 여러 column이 key가 될 수있다. - 여러 column이 key가 될때 합성키(composite key)라고 한다. - 즉 여러 column으로 단 하나의 튜플을 식별할 수 있다면 복수 column으로 구성된 superkey가 된다. - {ID}, {ID, name} 등 복수개가 존재할 수 있다. 2. candidate key - 후보키 - superkey중에서 minimal column으로만 구성할 수 있는 key를 말한다. - 마찬가지로 복수개가 존재할 수 ..
DB - 3. Relational Database 1. Relation - 데이터의 여러 속성(attribute)들을 column으로 묶어서 관계들을 table로 정의한다. 2. Atrribute - table의 각 column에 해당하는 attribute가 존재한다. - ID가 될 수 있는 값들을 모은 집합을 domain of ID(attribute)라고 한다. 예를 들면 domain of ID = {00000 ~ 99999}이 된다. - relational database의 attribute가 되기 위해서는 atomic한 조건이 요구된다. attribute는 반드시 단일값이여야 한다는 것이다. 즉 위의 예시에서 Wu라는 교수님이 Finance와 Music을 겸직해서는 안된다. - 만약 겸직하는 교수님을 relation db로 표현해야 한다면 tabl..

728x90