Transcript 슬라이드 제목 없음
SQL
정보보호학과
양 계 탁
1
SQL 개요
2
Database
연관된
데이터들의 집합
데이터를 쉽게 관리하는 프로그램
종류
관계형 데이터베이스
객체지향형 데이터베이스
계층형 데이터베이스
네트워크 데이터베이스
데이터를 2차원적인 테
이블에 저장하는 형식
: MS SQL 서버
Access
3
사 용 자(User)
필요(Request)
대답(Response)
DBMS(데이터베이스 관리 시스템)
필요(Request)
대답(Response)
데이터베이스(Data File)
4
SQL 이란?
관계형
데이터베이스
관계형 데이터베이스에 사용하는 언어
SQL(Structured Query Language)
국제표준화 기구에서 관계형
데이터베이스 표준언어로 채택
데이터의 검색, 입력, 수정, 삭제, 제어,
복구 등의 기능을 제공
5
SQL 역사
6
SQL과 데이타베이스 관리
DBMS
(데이타베이스 관리 시스템)
DB를
관리, 운영, 액세스하는 프로그램들의 모임
(종류)
계층형 DBMS
네트워크형 DBMS
관계형 DBMS : 80년대 후반 부터 본격적으로
사용됨
SQL
관계형
데이타베이스 언어
국제 표준으로 지정 (ANSI/ISO SQL1, SQL2)
7
SQL 역사(1)
: 관계형 이론이 1970년에 제안된 이후 약 27년 동안 발전
E.F.Codd 박사가 관계형 이론 제안
1974 - 79 IBM에서 System/R 프로젝트 실시
많은 관계형 기술이 개발됨 (SQL 포함)
1970
SEQUEL
--->
SEQUEL/2
---> SQL
(70년대 중반) UC 버클리에서 개발
QUEL을 개발하고, 후에
상용 시스템으로 발전
Oracle (1979) 세계 최초의 상용 관계형 DBMS
INGRES
8
SQL 역사(2)
(1981)
IBM의 최초의 관계형 DBMS
DB2 (1983)
IBM의 대표적인 관계형 DBMS
ANSI SQL (1986)
미국 표준 (SQL1)
ISO SQL (1987)
국제 표준 (SQL1)
ANSI/ISO SQL (1992) 미국/국제 표준 (SQL2)
SQL/DS
9
SQL 표준안(1)
ANSI/ISO
표준안
SQL (1986)
미국 표준 (SQL1)
ISO SQL (1987)
국제 표준 (SQL1)
ANSI/ISO SQL (1989) SQL1 확장판
ANSI/ISO SQL (1992) 미국/국제 표준 (SQL2)
ANSI/ISO SQL (199?) SQL3의 발표 예정
ANSI
기타 SQL 표준안
표준안
SAA SQL
X/OPEN
유럽지역 표준안
IBM의 자사 제품 표준안
10
SQL 표준안(2)
ODBC와
SAG (SQL Acess Group)
연동성에 대한 방안 제시
SAG의 두번째 표준안을 기반으로 MS사에서
ODBC 제안
DB
11
SQL 표준안(3)
이식성에
대한 잘못된 이해
: SQL 표준안에 대한 과장된 선전으로 인해 [그림 31]이 실현 가능하다고 주장된다.
12
SQL 표준안(4)
이식성의
장애 요소
오류
코드
데이타 타입
시스템 테이블
대화식 SQL
프로그램 방식 인터페이스
동적 SQL
의미 (semantics) 차이
정렬 순서
데이타베이스 구조
13
SQL과 네트워킹(1)
중앙집중식
구조
: 응용 처리와 DB 처리가 모두 중앙 컴퓨터에서
수행되고, 많은 사용자가 공유하기 때문에
시스템에 많은 부하가 걸린다.
14
SQL과 네트워킹(2)
파일
서버 구조
: 해당 파일의 모든 블록이 통신 선을 통해 전송되기
때문에 심각한 통신 부하가 발생할 것이다.
15
SQL과 네트워킹(3)
클라이언트/서버
구조
: 네트워크 통신량을 줄이고, DB의 부하를 분담한다
(전위와 후위 시스템 간의 역할 분담).
16
SQL의 영향(1)
SQL과
IBM의 SAA
DB2
SQL/DS
SQL/400
DB2/6000
DB2/2
미니 컴퓨터에서의 SQL
UNIX 시스템에서의 SQL
SQL과 트랜잭션
17
SQL의 영향(2)
개인용 컴퓨터에서의 SQL
PC LAN상의 SQL
18
SQL 언어(1)
DB
(DataBase)
서로
연관이 있는 데이타들의 모임
DBMS (DataBase Management System)
DB를
관리, 운영, 액세스하는 프로그램들의 모임
SQL (Structured Query Language)
구조적
질의어
관계형 DB 언어
DB에 저장된 데이타를 조직, 관리, 검색하기 위한
도구 (언어)
19
SQL 언어(2)
DB,
DBMS, SQL의 관계
20
SQL 언어(3)
SQL의 기능
데이타
정의 - 저장 데이타의 구조와 데이타 항목들
간의 관련성을 정의
데이타 검색 - 저장 데이타의 검색
데이타 조작 - 데이타의 삽인, 삭제, 수정
접근 제어 - 인가되지 않은 사용자의 사용을 제한
데이타 공유 - 동시 사용자들의 사용을 허용
데이타 무결성 - 비일관적 갱신, 시스템 고장으로
부터 데이타 훼손을 방지
21
SQL의 역할(1)
SQL의 역할
: DB 엔진과 DBMS utility들을 연결하는 매개체
22
SQL의 역할(2)
SQL의
역할
대화식 질의어이다
SQL은 DB 프로그래밍 언어이다
SQL은 DB 관리 언어이다
SQL은 분산 DB 언어이다
SQL은 DB 게이트웨이 언어이다
SQL은
23
SQL 기능과 장점(1)
SQL의
주요 기능
: SQL은 이해하기 쉬우면서, 데이타를 관리할 수 있는
포괄적인 도구이다.
제작사에
독립적 특성
높은 이식성
SQL 표준화
IBM의 지원 (DB2)
MS사의 참여 (ODBC)
관계형 이론의 튼튼한 기반
24
SQL 기능과 장점(2)
SQL의
주요 기능 (계속됨)
고급
영어문장과 같은 구조
대화식 질의
프로그램 방식의 DB 접근
데이타에 대한 다중 뷰
완전한 DB 언어
동적 데이타 정의
클라이언트/서버 구조
25
특정한 자료형식을 담는
다.
자료의 형태를 미리 결정
필드1
필드2
필드3
레코드1
데이터1
데이터2
데이터3
레코드2
데이터4
데이터5
데이터6
레코드3
데이터7
데이터8
데이터9
…..
…..
…..
…..
필드 -> 레코드 -> 테이블 -> 데이터 베이스
26
MS-SQL 데이터베이스
생성
생성
Logins 생성
DB Logins
Table 생성
Table Logins
DB
27
manager를 실행
DB에서 단축메뉴
New DB를 실행
Name란에 DB의 이름 결정
Security – Logins -> 생성 DB의 사용자 이름
입력, authentication(SQL Server),
PWD입력, Defalt(DB선택), language(Default)
Database Access탭 : 사용자가 생성DB의
접근 권한 생성
PWD 확인
Table 생성
Table 접근과 추가권한 설정
28
Enterprise
자 료 형
문자형(char,
varchar, text)
숫자형(int, smallint,
tinyint, float, money)
날짜 데이터형(datetime, smalldatetime)
2진 데이터형(binary, varbinary, image)
29
문 자 형
데이터형 값의 범위
설
명
데이터의 길이가 짧으면
Char(n) 8KB 까지 나머지 공간은 스페이스
공간으로 채움
데이터의 길이가 짧으면
varchar 8KB 까지
나머지 공간은 없앰
가변형 문자 데이터
text
예
“홍길동
”
“홍길동”
2GB 까지 좀더 많은 문자를 넣을 때 “많은 문자…”
30
숫자형
데이터형
값의 범위
예
-2.17*10^9 ∼ 2.17*10^9
정수데이터
tinyint
0 ∼ 255
작은 단위 숫자
float
-1.7*10^308 ∼ 1.7*10^308
실수데이터
money
-9.22*10^15 ∼ 9.22*10^15
화폐
Int
31
그 외의 데이터형
데이터형
값의 범위
예
datetime
1753/01/01 ∼9999/12/31
May 11,1999 12:00:00.01
smalldatetime 1900/01/01 ∼2079/06/06 May 11, 1999 12:00
binary(n)
8KB까지
varbinary(n)
8KB까지
image
2^31 –1 바이트 까지
32
Select 문
select Field_name1, Field_name2, …
from Table_name1, Table_name2,…
where (조건절)
order by (정렬 조건)
Query 문을 사용하여 DB에서 원하는 자료를
찾아올 때 사용하는 SQL문
select name, number, email, address
from MemberInfo
where number > 0 and number < 10
order by number desc
33
Insert 문
Insert into Table_name(Field_name1,
Field_name2, Field_name3)
values(value1,value2,value3)
Insert 문은 DB의 테이블의 필드에 새롭게 저장하고
자 하는 데이터를 입력시키는 명령문.
value에서 숫자 데이터가 아닌 경우 작은 따옴표(‘)로
둘러준다.
34
Delete 문
delete (from) Table_name where 조건
Delete 문은 DB의 테이블의 자료를 삭제할 때 사용
하는 명령문.
from은 생략 가능하다.
where 다음의 조건을 생략하면 테이블의 모든 자료
가 삭제된다.
35
Create 문
create table Table_name (
Field_name1 Field_type
Field_name2 Field_type
Field_name3 Field_type
)
[not null],
[not null],
[not null],
table을 만들 때 사용하는 SQL문
Table_name 테이블 이름
Field_name 테이블의 필드 이름
Field_type 필드의 자료형
Not null 필드 값이 반드시 있는 경우
36
Drop 문
drop table Table_name
table을 삭제 할 때 사용하는 SQL문
37
질의내 질의
select 출력물 from 테이블
where 조건 = (select … from … where…)
조인(join)
select 출력물
from ( 테이블 join 테이블 on 공통속성 )
where 조건
38
Access 를 SQL 로 전환 방법
DB(Webprogram)에서 단축메뉴
모든작업-Import Data
SOURSE(microsoft Access파일)
sourse화일 선택(아이디와
패스워드는 생략)
destinetion(microsoft OLE DB probider
for SQL server)
서버는(local), use window NT 선택
39
Sql
40