강의 내용 정리/데이터베이스(14)
-
데이터베이스(8), 데이터베이스 설계와 ER 모델
데이터베이스 설계와 ER 모델 1. 데이터베이스 설계의 개요 1) 데이터 베이스 설계의 종류 (1) 개념적 데이터베이스 설계 실제로 데이터 베이스를 어떻게 구현할 것인가와는 독립적으로 정보 사용의 모델을 개발하는 과정 조직체의 엔티티, 관계, 프로세스, 무결성 제약조건 등을 나타내는 추상화 모델을 구축한다. 엔티티: 서로 구분되면서 조직체에서 데이터베이스에 나타내려는 객체(사람, 장소, 사물 등등) 관계: 두 개 이상의 엔티티들 간의 연관 프로세스: 관련된 활동 무결성 제약조건: 데이터의 정확성과 비즈니스 규칙 특정 데이터 모델과 독립적으로 응용 세계를 모델링할 수 있도록 한다. 데이터베이스 구조나 스키마를 하향식으로 개발할 수 있기 위한 틀(framework)을 제공 엔티티 관계 데이터 모델이 가장 인..
2022.12.13 -
데이터베이스(7), 내포된 SQL
내포된 SQL(embedded SQL) 1. 내포된 SQL cf) 질의를 하는 두 가지 방법 (1) 사용자가 DBMS에 질의어를 입력하면 인터렉티브하게 사용할 수 있다. (2) 호스트 언어에 포함된 질의어로 질의를 보낸다. 이때 호스트 언어라고 하는 것은 SQL을 포함하고 있는 언어를 의미한다. 자바나 C언어, 파이썬 등이 호스트 언어로서 사용될 수 있다. 이렇게 사용하는 이유는 SQL 언어가 일반 프로그래밍 언어만큼의 표현력을 가지지 않았기 떄문이다. 따라서 SQL만으로는 표현하지 못하는 것들이 있게 된다. 따라서 SQL로 표현할 수 없는 거는 호스트 언어를 통해 처리하게 된다. 조건문, 반복문, 입출력 등과 같은 동작, 상호작용, 질의 결과를 GUI로 보내는 등의 기능이 없기에 호스트 언어를 사용한다..
2022.10.25 -
데이터 베이스(6), DML, 트리거와 주장
DML, 트리거와 주장 1. DML 1) INSERT 문 INTO 다음에 삽입하는 릴레이션을 넣을 수 있는데, 이때 선택적으로 애트리뷰트 리스트를 넣을 수 있다. 삽입되는 값은 튜플 형식으로 주는데 이를 해석하는 방법에 대해 정의를 하는 것이다. 이를 명시하지 않으면 create table을 했을 때 주어진 애트리뷰트의 순서대로 처리한다. 오라클의 옛날 버전에서는 empty string을 null 값으로 줬지만 이를 구분하는 것이 맞다. null: ^ SELECT 문을 INSERT 문에서 사용하게 될 경우에는 SELECT를 통해 추출한 튜플들을 삽입하는 명령어가 된다. 이때 SELECT를 사용해서 INSERT를 하는 경우에는 어트리뷰트의 도메인이 동일해야한다. 따라서 이는 SAME이 아닌 COMPATIB..
2022.10.21 -
데이터베이스(5), SELECT문
SELECT 문 1. SELECT 문 1) SELECT 문은? 관계 대수의 실렉션, 프로젝션, 조인, 카티션 곱 등을 결합한 것을 의미한다. 관계 데이터베이스에서 가장 자주 사용된다. SELECT 절과 FROM 절은 필수적인 절이며 나머지는 선택적으로 사용할 수 있다. SELECT 절 뒤에 어트리뷰트가 들어가서 이는 관계 대수의 프로젝션을 의미한다. WHERE 절 뒤에 조건이 들어가는데 이는 관계 대수의 셀렉션에 의미한다. 이는 튜플에 대한 조건이다. 조건을 작성할 때 중첩 질의를 사용할 수도 있다. GROUPBY는 그룹화를 위해 사용한다. HAVING 절은 그룹이 만족시켜야하는 조건을 명시한다. 이는 그룹에 대한 조건이다. ORDER BY 절은 정렬하기 위해 사용된다. ex) SELECT 3 x 3;을..
2022.10.21 -
데이터 베이스(4), SQL 개요 및 데이터 무결성
SQL 개요 1. SQL 개요 1) SQL 개요 다양한 상용관계 DBMS마다 지원하는 SQL의 기능에는 다소 차이가 있을 수 있다. 관계 데이터 모델은 집합을 기반으로 두고 있어 테이블 내에 동일한 튜플을 허용하지 않지만 SQL은 이를 허용한다. 2) SQL의 발전 역사 SQL 2 버전을 많이 사용한다. SQL 3 버전은 SQL 2 버전보다 더 많은 기능이 추가되었다. 3) SQL 특징 SQL은 비절차적 언어(선언적 언어)이므로 사용자는 자신이 원하는 바만 명시하며, 원하는 것을 처리하는 방법은 명시할 수 없다. 관계 DBMS는 사용자가 입력한 SQL문을 번역하여 사용자가 요구한 데이터를 찾는데 필요한 모든 과정을 담당한다. 자연어에 가까운 구문을 사용하여 질의를 표현할 수 있다. 두 가지 인터페이스가 ..
2022.10.21 -
데이터 베이스(3), 관계 대수와 SQL
관계 대수와 SQL 1. 관계 대수 1) 관계 데이터 모델에서 지원되는 두 가지 정형적인 언어 (1) 관계 해석 원하는 데이터만 명시하고 질의를 어떻게 수행할 것인가는 명시하지 않는 선언적인 언어로 이는 집합에서의 조건제시법과 유사한 특징을 가진다. ex) {n | n is even, n in R}, {t[name] | t는 EMP에 포함된다.} (2) 관계 대수 어떻게 질의를 수행할 것인가를 명시하는 절차적인 언어로 연산을 어떤 순서로 작성할 것인지 명시하는 것을 의미한다. sql을 처리할 때는 질의어를 관계 대수로 전환해서 처리하게 된다. cf) SQL DBMS의 사실상 표준 질의어 상용 관계 DBMS들의 사실상의 표준 질의어인 SQL을 이해하고 사용할 수 있는 능력은 매우 중요하다. 2) 관계 대수..
2022.10.19