본문 바로가기

3-2 학기/Database8

[데이터베이스] Ch11 RDB design 11.1 Good Schema and Bad Schema나쁜 테이블의 기준은 무엇일까?나쁜 테이블은 갱신 이상(update anomaly), 삭제 이상(delete anomaly), 입력 이상(insert anomaly)를 가지고 있다.우선 위의 mybadtable1 테이블을 보자. chairman, building, budget 속성 값이 deptName 속성에 의존하고 있는 것을 볼 수 있다.즉, deptName이 변경되면 나머지 속성들도 같이 바뀌게 되는 것이다. 예를 들어서 설명을 해보면CS학과의 경우, Databases 과목 및 Java 과목이 삭제되는 경우에는 삭제 이상이 발생하지 않는다.그러나, 남아있는 마지막 과목인 Data Structure가 삭제되면 CS학과에 대한 정보도 영원히 삭제되.. 2024. 11. 27.
[데이터베이스] Ch10 ER model 10.1 Entity and Relationship- 개체(entity): 구별이 가능한 객체를 의미* 개체는 ER 데이터 모델에서 사용한 용어이고, 객체는 객체지향 패러다임에서 사용한 용어이다.위 그림은 개체 집합(entity set)을 나타낸다. Student 개체 집합에 속성이 동일한 다수의 Student 개체가 있고, Course 개체 집합에도 다수의 Course 개체가 있는 것이다.만약 이 둘이 관계가 있다면?위는 관계성 집합 takes의 예제이다.Student 개체 집합에 속한 개체가 Course 개체 집합에 속한 개체와 연관이 있음을 나타낼 수 있다. 개체가 , , 과 연관이 있음을 알 . 수 있고, 여기서 의미는 "수강하다"이다. 관계성 집합은 속성을 가질 수 있다.예를 들어, 위의 예제에.. 2024. 11. 27.
[데이터베이스] Ch6 RDB functionalities 6.1 Views 뷰(VIew)란, 특정 사용자로부터 특정 속성을 숨기는 기능이다.Create view myProfessor asselect pID, name, deptNamefrom professor;위처럼 Create view문장으로 뷰를 만들 수 있다. - 뷰는 일반 테이블과 다르게 터플을 실제 뷰 내부에 저장하지 않는다.- 뷰 테이블이 터플을 실제로 가지지 않기에 가상관계라고도 한다.(데이터베이스 시스템은 뷰에 대한 정의를 저장하고 있으며 이를 이용하여 뷰에 대한 질의를 작성하는 것)- 그렇기에 가장 최신의 데이터를 가지고 있을 수밖에 없다. ✅뷰의 확장 예시를 알아보자.Create view myFaculty as select pID, name, deptName from professor .. 2024. 11. 27.
[데이터베이스] Ch5 SQL II 5-1 Aggregate Functions✅집계함수데이터베이스 시스템은 다섯 개의 집계함수를 지원한다.avg: average valuemin: minimum valuemax: maximum valuesum: sum of valuescount: number of values✅Group by 전체 테이블을 특정 속성 값으로 터플을 분류하고, 나누어진 각 그룹에 대하여 집계 함수를 적용하고자 하는 요구가 있으며, 이러한 역할을 하는 것이 "group by"절이다. group by절을 사용할 때 주의해야 할 사항이 있다. 바로, group by절에 나온 속성과 집계함수만이 select 절에 나올 수 있다.아래의 예시를 통해 자세히 알아보자./* 틀린 예시 */Select deptName, pID, avg(sal.. 2024. 10. 15.
[데이터베이스] Ch3 SQL I 3-1 Database Languages데이터베이스 시스템은 사용자와의 의사소통을 위하여 데이터베이스 언어를 제공해야 하며, 사용자는  데이터베이스 언어를 이용하여 사용자의 요구사항을 데이터베이스 시스템에 표현한다. 기능적 관점DDL데이터베이스 스키마에 대한 조작을 담당하는 영역 (스키마 생성, 삭제, 변경)스키마에 대한 정보를 사전에서 관리하기 때문에 DDL 실행 효과는 데이터 사전에 반영된다.DML데이터베이스 인스턴스를 조작하는 언어를 의미한다. (인스턴스 생성, 조회, 삭제, 변경)사용자는 DML을 이용해 질의를 생성하여 데이터베이스 시스템에 전달한다.DCL데이터베이스 시스템의 스키마와 인스턴스를 제외한 다른 객체를 조작하는 데이터베이스 언어이다.ex) 트랜잭션 시작, 종료언어가 표현되는 방식 관점.. 2024. 10. 12.
[데이터베이스] Ch2 Relational Data Model (2) 2-3. Relational Algebra관계 대수는 관계형 데이터 모델의 일부이며, 지금까지 정의한 관계, 제약 사항에 대한 연산을 제공한다.관계 대수는 위의 6개의 기본적인 연산이 있다.입력으로 하나 또는 두 개의 관계를 가지며, 결과물로 새로운 관계를 생성한다. 상용 데이터베이스는 시스템 관계 대수를 직접적으로 사용자에게 지원하지 않는다. 상용 데이터베이스 시스템은 그 대신 SQL 언어를 사용자에게 지원한다. ✅선택(select) 연산선택 연산의 기호는 σ(sigma)이며 그 옆에오는 p는 선택 조건을 의미한다 .각 항은 and, or, not으로 연결이 가능하다. 그림을 예시로 알아보자면 A와 B의 조건이 같고, D는 4보다 커야 한다는 것이다.그럼 σA=B^D>4의 결과는 두 가지 터플이 나오게.. 2024. 10. 9.
[데이터베이스] Ch2 Relational Data Model (1) 2-1 Relation Data Model 관계형 데이터모델에서 의미하는 관계는 '테이블 형식'이다.위의 그림은 student 관계의 예제이다.7개의 속성(attribute)과 5개의 터플(tuple)을 가지고 있다. 각 속성은 속성헤드(attribute head)를 가지고 있으며, 상기 관계에서 속성은 sID, name, gender, deptName, year, GPA, totalCredit이다. 여기서 관계, 터플, 속성은 기존 데이터 모델에서의 테이블, 레코드, 칼럼과 동일한 용어로 볼 수 있다. ✅속성각 속성은 속성 값으로 허용할 수 있는 값의 집합을 가지고 있으며, 이를 도메인이라고 한다.즉, 속성 값은 해당 도메인의 원소이다. 속성 도메인에 속하는 값은 원자 값을 가져야 한다.원자 값은 더 .. 2024. 10. 8.
[데이터베이스] Ch0 Getting Started Database Database데이터베이스를 본격적으로 시작함에 앞서, 개념에 대해 먼저 짚고 넘어가려고 한다. 데이터베이스는 서로 연관이 있는 데이터의 모임을 의미한다.이 데이터는 용량이 방대하여 주기억장치에는 저장이 불가능하여 2차 저장 장치인 하드디스크 (또는 플래시 메모리)에 저장되어야 하는 데이터이다. 이러한 데이터베이스 분야는 일상생활에서 널리 활용된다.ex) 은행의 데이터베이스 구축, 학교의 데이터베이스 운영 데이터베이스는 구조적 데이터 및 비구조적 데이터를 모두 포함한다.구조적 데이터: 데이터가 비교적 엄격한 스키마(또는 구조체)에 저장/관리되는 데이터비구조적 데이터: 스키마가 존재하지 않거나 또는 존재하여도 느슨한 형태의 스키마에 저장 관리되는 데이터 2024. 10. 8.