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