1 / 20

제 1 강 SQL 개요

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

quade
Télécharger la présentation

제 1 강 SQL 개요

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 제1강 SQL 개요 데이터베이스 개론 임덕성 교수

  2. 학습목표 학습 목표 프로그래밍 언어와 데이터 접근 언어 1 SQL 언어의 기원과 특성 2 3 SQL 언어의 표준화

  3. 1. 프로그래밍 언어와 데이터 접근 언어 절차적(Procedural) 프로그래밍 언어 기계어, 어셈블리 언어, 고급 프로그래밍 언어(포트란, C, JAVA) • 비절차적(Non-procedural) 데이터 접근 언어 • SQL • 1970년대 후반기에 개발 • 애플리케이션 프로그램에서 손쉽게 데이터에 접근 • 특정한 목적으로 상호 작용을 하면서 데이터에 접근

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

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

  6. 3.1 SQL 언어 주요 특성과 단점 비 절차적 언어 질의(Query) 결과가 테이블 형태로 생성 SQL을 사용하여 데이터 사전(Data Dictionary) 검색 널(null)을 제대로 처리하지 못하는 점 동일한 질의를 여러 방법으로 작성하게 하는 점

  7. 3.3 SQL 언어의 구성 • 데이터 정의어(DDL) • 데이터가 저장되는 테이블(릴레이션)을 생성, 변경, 삭제하는 기능 제공 • 테이블에 저장된 데이터를 빨리 접근하기 위한 인덱스(index) 정의 및뷰(view)를 정의할 수 있는 기능 포함 • 데이터 조작어(DML) • 테이블에 데이터를 삽입하고, 저장 데이터 중 조건에 맞는 것들을 검색하며, 불필요한 데이터를 삭제하는 기능 제공 • 대화식 DML : 사용자가 직접 데이터베이스에 접근하여 이용 • 삽입 DML : 개발자들이 응용 프로그램 제작 시에 이용

  8. 3.3 SQL 언어의 구성 (계속) 데이터 조작어 (DML : Data Manipulation Language) • 데이터 검색 기능(select) • 데이터 삽입 기능(insert) • 데이터 삭제 기능(delete) SQL 데이터 정의어 (DDL : Data Definition Language) • 테이블 생성 기능(create table) • 테이블 변경 기능(alter table) • 테이블 삭제 기능(drop table) • 뷰 생성 기능(create view) • 뷰 삭제 기능(drop view) 등 대화식 DML (Interactive DML) 내장 DML (Embedded DML)

  9. 4. SQL 언어의 표준화 (SQL-86, SQL-89) 1986년 발표 첫번째 공식적인 SQL 표준 CREATE 기능 등을 포함하는 기본 SQL 언어 정의 DROP, ALTER, GRANT, REVOKE 기능 등은 제외 1989년 발표 무결성 증대 기능(Integrity Enhancement Feature) 추가

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

  11. 4. SQL 언어의 표준화 (SQL-99) • 1999년 7월 발표 • SQL-99의 새로운 기능 • 사용자 정의 프로시저와 함수 • INSERT, UPDATE, DELETE 문장의 전후에 실행되는 행 수준 또는 문장 수준 데이터베이스 트리거 • 부울형 데이터 유형과 대규모 객체 (이진 객체, 문자 객체) • 새로운 WHERE 술어 (for all, for some, similar to) • 보안 프로파일을 정의하기 위한 룰 • 부분적으로 완료된 트랜잭션이 롤백할 수 있는 지점을 정의하는 저장점 (SAVEPOINTS)

  12. 5. 예제 테이블 학과(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) : 교수의 호봉

  13. 5. 예제 테이블 (계속) 강좌(COURSE) : 강좌에 대한 정보를 포함하는 테이블 강좌번호(c_no) : 강좌를 유일하게 식별할 수 있는 속성 값 강좌이름(c_name) : 강좌의 이름 시수(times) : 강좌의 시수 학점(point) : 강좌의 학점 필수/선택(R/O) : 강좌의 필수·선택 여부 학생(STUDENT) : 학생에 대한 정보를 포함하는 테이블 학번(s_no) : 학생을 유일하게 식별할 수 있는 속성 값 이름(s_name) : 학생의 이름 학과(dept) : 학생이 소속된 학과의 이름 학년(year) : 학생의 학년 전화(s_tel) : 학생의 집 전화번호 주소(s_address) : 학생의 집 주소 지도교수(advisor): 학생의 지도교수를 가리키는 교수번호 생년월일(s_birth) : 학생의 생년월일

  14. 5. 예제 테이블 (계속) 강의(LECTURE) : 강의에 대한 정보를 포함하는 테이블 강좌번호(c_no) : 강의가 개설된 강좌번호 교수번호(p_no) : 강의가 개설된 강좌를 담당하는 교수번호 요일(day_week) : 강의 요일 시작시간(start_time) : 강의 시작 시간 강의실(room_no) : 강의가 진행되는 강의실 번호 등록(ENROLLMENT) : 등록에 대한 정보를 포함하는 테이블 강좌번호(c_no) : 학생이 강좌를 등록한 번호 학번(s_no) : 강좌를 등록한 학생의 번호 성적(grade) : 해당 강좌의 수강 성적 점수(merits) : 해당 강좌의 수강 점수

  15. 5. 예제 테이블 간단한 예제를 이용한 테이블 생성, 데이터 삽입, 데이터 검색 학과(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) )

  16. 5. 예제 테이블 간단한 예제를 이용한 테이블 생성, 데이터 삽입, 데이터 검색 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' 입력 SQL INSERT INTO department VALUES (001, '컴퓨터정보계열', 0001, '최수연', 5290, 'M303');

  17. 5. 예제 테이블 간단한 예제를 이용한 테이블 생성, 데이터 삽입, 데이터 검색 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' 입력 SQL INSERT INTO department VALUES (002,'간호학과', 0002, '박소연', 5317,'M404');

  18. 5. 예제 테이블 간단한 예제를 이용한 테이블 생성, 데이터 삽입, 데이터 검색 CREATE TABLE department ( dept_no NUMBER(4), dept_name VARCHAR2(20), chief NUMBER(5), assistant VARCHAR2(10), dept_tel NUMBER(5), location VARCHAR2(6) ) 모든 부서의 정보를 출력하세요. 입력 SQL select * from department

  19. 요약 요 약 프로그래밍 언어와 데이터 접근 언어 1 SQL 언어의 기원과 특성 2 3 SQL 언어의 표준화

  20. 감 사 합 니 다 끝~

More Related