20
제제제제제제 제제 임임임 임임

제 1 강 SQL 개요

  • Upload
    quade

  • View
    129

  • Download
    0

Embed Size (px)

DESCRIPTION

제 1 강 SQL 개요. 데이터베이스 개론. 임덕성 교수. 학습목표. 학습 목표. 프로그래밍 언어와 데이터 접근 언어. 1. SQL 언어의 기원과 특성. 2. 3. SQL 언어의 표준화. 1. 프로그래밍 언어와 데이터 접근 언어. 절차적 (Procedural) 프로그래밍 언어 기계어 , 어셈블리 언어 , 고급 프로그래밍 언어 ( 포트란 , C, JAVA). 비절차적 (Non-procedural) 데이터 접근 언어 SQL 1970 년대 후반기에 개발 - PowerPoint PPT Presentation

Citation preview

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  개요

끝 ~