Transcript
Page 1: 제 1 강  SQL  개요

제 1 강 SQL 개요

데이터베이스 개론임덕성 교수

Page 2: 제 1 강  SQL  개요

SQL 데이터 정의어1 강 SQL 개요

학습 목표학습목표

프로그래밍 언어와 데이터 접근 언어

SQL 언어의 기원과 특성

SQL 언어의 표준화

1

2

3

Page 3: 제 1 강  SQL  개요

SQL 데이터 정의어1 강 SQL 개요

절차적 (Procedural) 프로그래밍 언어기계어 , 어셈블리 언어 , 고급 프로그래밍 언어 ( 포트란 , C, JAVA)

비절차적 (Non-procedural) 데이터 접근 언어SQL- 1970 년대 후반기에 개발- 애플리케이션 프로그램에서 손쉽게 데이터에 접근- 특정한 목적으로 상호 작용을 하면서 데이터에 접근

1. 프로그래밍 언어와 데이터 접근 언어

Page 4: 제 1 강  SQL  개요

SQL 데이터 정의어1 강 SQL 개요

‘A Relational Model of Data for Large Shared Data Banks’(E.F. Codd, 1970.6)- 관계형 데이터 모델 구성요소 정의- ‘DSL/ 알파’라는 수학적 데이터 조작 언어 정의

2.1 SQL 기원

Page 5: 제 1 강  SQL  개요

SQL 데이터 정의어1 강 SQL 개요

DSL/ 알파- 비 수학자가 이해하기 어려움SQUARE (Specifying Queries as Relational Expressions)- 아래첨자를 키보드로 입력하기 어려움SEQUEL (Structured English Query Language)- SQUARE 의 확장 / 향상SQL (Structured Query Language)- SEQUEL 이라는 이름이 트레이드 마크 문제로 SQL 로 변경

2.2 SQL 탄생

Page 6: 제 1 강  SQL  개요

SQL 데이터 정의어1 강 SQL 개요

비 절차적 언어질의 (Query) 결과가 테이블 형태로 생성SQL 을 사용하여 데이터 사전 (Data Dictionary) 검색

널 (null) 을 제대로 처리하지 못하는 점동일한 질의를 여러 방법으로 작성하게 하는 점

3.1 SQL 언어 주요 특성과 단점

Page 7: 제 1 강  SQL  개요

SQL 데이터 정의어1 강 SQL 개요

데이터 정의어 (DDL)- 데이터가 저장되는 테이블 ( 릴레이션 ) 을 생성 , 변경 , 삭제하는 기능

제공

- 테이블에 저장된 데이터를 빨리 접근하기 위한 인덱스 (index) 정의 및뷰 (view) 를 정의할 수 있는 기능 포함

데이터 조작어 (DML)- 테이블에 데이터를 삽입하고 , 저장 데이터 중 조건에 맞는 것들을

검색하며 , 불필요한 데이터를 삭제하는 기능 제공

• 대화식 DML : 사용자가 직접 데이터베이스에 접근하여 이용

• 삽입 DML : 개발자들이 응용 프로그램 제작 시에 이용

3.3 SQL 언어의 구성

Page 8: 제 1 강  SQL  개요

SQL 데이터 정의어1 강 SQL 개요

SQL

데이터 정의어(DDL : Data Definition Language)

• 테이블 생성 기능 (create table)• 테이블 변경 기능 (alter table)• 테이블 삭제 기능 (drop table)• 뷰 생성 기능 (create view)• 뷰 삭제 기능 (drop view) 등

데이터 조작어(DML : Data Manipulation Language)

• 데이터 검색 기능 (select)• 데이터 삽입 기능 (insert)• 데이터 삭제 기능 (delete)

대화식 DML(Interactive DML)

내장 DML(Embedded DML)

3.3 SQL 언어의 구성 ( 계속 )

Page 9: 제 1 강  SQL  개요

SQL 데이터 정의어1 강 SQL 개요

1986 년 발표첫번째 공식적인 SQL 표준CREATE 기능 등을 포함하는 기본 SQL 언어 정의DROP, ALTER, GRANT, REVOKE 기능 등은 제외

1989 년 발표무결성 증대 기능 (Integrity Enhancement Feature) 추가

4. SQL 언어의 표준화 (SQL-86, SQL-89)

Page 10: 제 1 강  SQL  개요

SQL 데이터 정의어1 강 SQL 개요

1992 년 발표다양한 기능 추가- 외부조인- 날짜 / 시간 유형과 기타 유형- 표준화한 에러 리포팅- 표준화한 카탈로그 테이블의 집합- 동적인 스키마 조작 (DROP, ALTER, GRANT, REVOKE)- 종속된 (Cascaded) 변경과 삭제 참조 작업- 트랜잭션 일관성

4. SQL 언어의 표준화 (SQL-92)

Page 11: 제 1 강  SQL  개요

SQL 데이터 정의어1 강 SQL 개요

1999 년 7 월 발표SQL-99 의 새로운 기능- 사용자 정의 프로시저와 함수- INSERT, UPDATE, DELETE 문장의 전후에 실행되는 행 수준 또는 문장

수준 데이터베이스 트리거- 부울형 데이터 유형과 대규모 객체 ( 이진 객체 , 문자 객체 )- 새로운 WHERE 술어 (for all, for some, similar to)- 보안 프로파일을 정의하기 위한 룰- 부분적으로 완료된 트랜잭션이 롤백할 수 있는 지점을 정의하는 저장점 (SAVEPOINTS)

4. SQL 언어의 표준화 (SQL-99)

Page 12: 제 1 강  SQL  개요

SQL 데이터 정의어1 강 SQL 개요

학과 (DEPARTMENT) : 학과에 대한 정보를 포함하는 테이블 학과코드 (dept_no) : 학과를 유일하게 식별할 수 있는 속성 값 학과명 (dept_name) : 학과 이름 학과장 (chief) : 학과장을 맞고 있는 교수의 교수번호 조교 (assistant) : 학과의 조교 이름 전화 (dept_tel) : 학과의 전화번호 위치 (location) : 학과가 위치한 건물의 방 번호

교수 (PROFESSOR): 교수에 대한 정보를 포함하는 테이블 교수번호 (p_no) : 교수를 유일하게 식별할 수 있는 속성 값 이름 (p_name) : 교수의 이름 직급 (grade) : 교수의 직급 소속학과 (dept_no) : 교수가 소속된 학과의 학과코드 연구실 (room_no) : 교수의 연구실이 위치한 건물의 방 번호 전화 (p_tel) : 교수 연구실의 전화번호 주소 (p_address) : 교수의 집 주소 생년월일 (p_birth) : 교수의 생년월일 입사일 (join_date) : 교수의 입사일 호봉 (pay_step) : 교수의 호봉

5. 예제 테이블

Page 13: 제 1 강  SQL  개요

SQL 데이터 정의어1 강 SQL 개요

강좌 (COURSE) : 강좌에 대한 정보를 포함하는 테이블 강좌번호 (c_no) : 강좌를 유일하게 식별할 수 있는 속성 값 강좌이름 (c_name) : 강좌의 이름 시수 (times) : 강좌의 시수 학점 (point) : 강좌의 학점 필수 / 선택 (R/O) : 강좌의 필수 · 선택 여부

학생 (STUDENT) : 학생에 대한 정보를 포함하는 테이블 학번 (s_no) : 학생을 유일하게 식별할 수 있는 속성 값 이름 (s_name) : 학생의 이름 학과 (dept) : 학생이 소속된 학과의 이름 학년 (year) : 학생의 학년 전화 (s_tel) : 학생의 집 전화번호 주소 (s_address) : 학생의 집 주소 지도교수 (advisor) : 학생의 지도교수를 가리키는 교수번호 생년월일 (s_birth) : 학생의 생년월일

5. 예제 테이블 ( 계속 )

Page 14: 제 1 강  SQL  개요

SQL 데이터 정의어1 강 SQL 개요

강의 (LECTURE) : 강의에 대한 정보를 포함하는 테이블 강좌번호 (c_no) : 강의가 개설된 강좌번호 교수번호 (p_no) : 강의가 개설된 강좌를 담당하는 교수번호 요일 (day_week) : 강의 요일 시작시간 (start_time) : 강의 시작 시간 강의실 (room_no) : 강의가 진행되는 강의실 번호

등록 (ENROLLMENT) : 등록에 대한 정보를 포함하는 테이블 강좌번호 (c_no) : 학생이 강좌를 등록한 번호 학번 (s_no) : 강좌를 등록한 학생의 번호 성적 (grade) : 해당 강좌의 수강 성적 점수 (merits) : 해당 강좌의 수강 점수

5. 예제 테이블 ( 계속 )

Page 15: 제 1 강  SQL  개요

SQL 데이터 정의어1 강 SQL 개요

학과 (DEPARTMENT) : 학과에 대한 정보를 포함하는 테이블 학과코드 (dept_no) : 학과를 유일하게 식별할 수 있는 속성 값 학과명 (dept_name) : 학과 이름 학과장 (chief) : 학과장을 맞고 있는 교수의 교수번호 조교 (assistant) : 학과의 조교 이름 전화 (dept_tel) : 학과의 전화번호 위치 (location) : 학과가 위치한 건물의 방 번호

CREATE TABLE department(

dept_no NUMBER(4),dept_name VARCHAR2(30),chief NUMBER(5),assistant VARCHAR2(10),dept_tel NUMBER(5),location VARCHAR2(6)

)

5. 예제 테이블

간단한 예제를 이용한 테이블 생성 , 데이터 삽입 , 데이터 검색

Page 16: 제 1 강  SQL  개요

SQL 데이터 정의어1 강 SQL 개요

CREATE TABLE department(

dept_no NUMBER(4),dept_name VARCHAR2(20),chief NUMBER(5),assistant VARCHAR2(10),dept_tel NUMBER(5),location VARCHAR2(6)

)입력 데이터

학과코드 :001 학과명 :' 컴퓨터정보계열 ', 학과장 :0001, 조교 : '최수연 ', 전화 :5290, 위치 :‘M303'

5. 예제 테이블

간단한 예제를 이용한 테이블 생성 , 데이터 삽입 , 데이터 검색

입력 SQLINSERT INTO department VALUES (001, ' 컴퓨터정보계열 ', 0001, ' 최수연 ', 5290, 'M303');

Page 17: 제 1 강  SQL  개요

SQL 데이터 정의어1 강 SQL 개요

CREATE TABLE department(

dept_no NUMBER(4),dept_name VARCHAR2(20),chief NUMBER(5),assistant VARCHAR2(10),dept_tel NUMBER(5),location VARCHAR2(6)

)입력 데이터

학과코드 :002 학과명 :‘ 간호학과 ', 학과장 :0002, 조교 : '박소연 ', 전화 :5317, 위치 :‘M404'

5. 예제 테이블

간단한 예제를 이용한 테이블 생성 , 데이터 삽입 , 데이터 검색

입력 SQLINSERT INTO department VALUES (002,' 간호학과 ', 0002, ' 박소연 ', 5317,'M404');

Page 18: 제 1 강  SQL  개요

SQL 데이터 정의어1 강 SQL 개요

CREATE TABLE department(

dept_no NUMBER(4),dept_name VARCHAR2(20),chief NUMBER(5),assistant VARCHAR2(10),dept_tel NUMBER(5),location VARCHAR2(6)

)모든 부서의 정보를 출력하세요 .

5. 예제 테이블

간단한 예제를 이용한 테이블 생성 , 데이터 삽입 , 데이터 검색

입력 SQLselect * from department

DEPT_NO DEPT_NAME CHIEF ASSISTANT DEPT_TEL LOCATI 1 컴퓨터정보계열 1 최수연 5290 M303 2 간호학과 2 박소연 5317 M404

Page 19: 제 1 강  SQL  개요

SQL 데이터 정의어1 강 SQL 개요

요 약요약

프로그래밍 언어와 데이터 접근 언어

SQL 언어의 기원과 특성

SQL 언어의 표준화

1

2

3

Page 20: 제 1 강  SQL  개요

끝 ~


Top Related