학습목표 학습목표 본 장은 데이터베이스를 조작하기 위한 SQL 문중에서 특별히 데이터베이스의 정의와 관련된 명령어인 DDL을 쿼리분석기를 사용하여 하나씩 실습을 통해서 학습한다. DDL 명령어로 데이터베이스 생성과 삭제, 테이블 생성, 수정, 삭제 등을 할 수 있다. 또한.

Slides:



Advertisements
Similar presentations
일정 관리 다이어리 제작 JSP Programming with a Workbook. 학습 목표  사용자의 일정을 관리할 수 있는 다이어리에 대하여 알아보자. JSP Programming with a Workbook2.
Advertisements

12 데이터 무결성 제약조건 데이터 무결성 제약조건의 개념 데이터 무결성 제약조건의 종류 무결성 제약조건의 생성 방법.
목차 Contents 무선인터넷용 비밀번호 설정방법 Windows 7 Windows 8 Windows XP MAC OS.
PARK SUNGJIN Oracle 설치 PARK SUNGJIN
DB 프로그래밍 학기.
DB 프로그래밍 학기.
You YOungseok 데이터베이스 테이블 및 인덱스 You YOungseok.
학습목표 학습목표 본 장은 상용으로 널리 쓰이는 MS-SQL SERVER 2000의 주요 기능과 설치과정, 주요 구성요소인 서비스 관리자, 엔터프라이즈관리자, 쿼리분석기 등을 이용한 기본적인 SQL-SERVER 사용법에 대해 공부한다.
MS-Access의 개요 1강 MOS Access 2003 CORE 학습내용 액세스 응용 프로그램은 유용한 데이터를
질의어와 SQL 기본 SQL 고급 SQL 데이타의 수정 데이타 정의 언어 내장 SQL
관계 대수와 SQL.
주)INVENTORNICS 노창배 소프트웨어 김 경 순
데이터 베이스 설계 및 실습 #1 - 오라클 설치 및 SQL 기본.
JSP Programming with a Workbook
제 09 장 데이터베이스와 MySQL 학기 인터넷비즈니스과 강 환수 교수.
데이터베이스 담당교수 신정식 Chapter 4 SQL(1).
6장 Mysql 명령어 한빛미디어(주).
MySQL 및 Workbench 설치 데이터 베이스.
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
Windows Server 장. 사고를 대비한 데이터 백업.
11 테이블 관리와 데이터 딕셔너리 데이터베이스 응용 프로젝트 개발 테이블 구조 변경 데이터 딕셔너리.
3장. 데이터베이스 구축의 전체 과정 미리 실습하기
테이블 : 데이터베이스를 구성하는 요소로 같은 성격에 정보의 집합체. 레코드 : 하나의 정보를 가지고 있는 컬럼의 집합체
5장 Mysql 데이터베이스 한빛미디어(주).
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
07 그룹 함수 그룹 함수의 개념 그룹 함수의 종류 데이터 그룹 생성 HAVING 절.
4-1장. MySQL 제13장.
학습목표 학습목표 본 장은 데이터베이스 내에 하나의 객체로 저장되어 관리되는 응용프로그램과 같은 기능을 하는 저장 프로시저에 대해 학습한다. 사용자가 직접 작성하는 사용자 저장 프로시저, DBMS가 관리를 위해 미리 만들어 둔 시스템 저장 프로시저에 대한 여러 가지 사용방법을.
3.2 SQL Server 설치 및 수행(계속) 시스템 데이터베이스 master
1. C++ 시작하기.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
13 인덱스 인덱스의 개념 인덱스의 구조 인덱스의 효율적인 사용 방법 인덱스의 종류 및 생성 방법 인덱스 실행 경로 확인
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
17강. 데이터 베이스 - I 데이터 베이스의 개요 Oracle 설치 기본적인 SQL문 익히기
MYSQL 설치 SQL언어 SQL언어의 활용 웹과 SQL언어와의 연동
학습목표 학습목차 다른 홈페이지의 HTML 파일 코드를 보는 방법에 대해 알아봅니다.
KHS JDBC Programming 4 KHS
5장 Mysql 데이터베이스 한빛미디어(주).
13 인덱스 인덱스의 개념 인덱스의 구조 인덱스의 효율적인 사용 방법 인덱스의 종류 및 생성 방법 인덱스 실행 경로 확인
You YoungSEok Oracle 설치 You YoungSEok
1장. 데이터베이스 자료의 조직적 집합체_데이터베이스 시스템의 이해
환경 설정 예제 데이터베이스 생성 - 그림 3.34의 SQL Server 관리 스튜디오 창의 왼쪽 영역의 데이터베
CHAP 13. 방명록 만들기 실습.
JDBC Lecture 004 By MINIO.
2015학년도 PHP 기말 레포트 로그인 홈페이지 제작.
3장. SQL Server 2008 전체 운영 실습 및 DB와 프로그램의 연동
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
뇌를 자극하는 Windows Server 2012 R2
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
15장 컬렉션 프레임워크 Section 1 컬렉션 프레임워크의 개요 Section 2 리스트 Section 3 셋
테이블 만들기 실습 목표 입력할 tableDB <실습1> SSMS에서 테이블 생성
기말 프로젝트 계획 MVC 패턴 기반 웹 애플리케이션 개발 프로젝트명 : 팀명 : 팀원 :
데이터 베이스 DB2 관계형 데이터 모델 권준영.
06. SQL 명지대학교 ICT 융합대학 김정호.
CHAP 21. 전화, SMS, 주소록.
문성우 SQL 실습 Part Ⅰ 문성우.
데이터 동적 할당 Collection class.
오라클 11g 보안.
메뉴(Menu) 컴퓨터응용 및 실습 I.
14 뷰(View) 뷰의 개념 뷰 관리.
제 23 장 오라클에서 보안 기능.
Chapter 10 데이터 검색1.
시스템 인터페이스 Lab1 X-window 및 명령어 사용.
멀티미디어시스템 제 5 장. 멀티미디어 데이터베이스 개념 IT응용시스템공학과 김 형 진 교수.
14 뷰(View) 뷰의 개념 뷰 관리.
 6장. SQL 쿼리.
임시테이블과 테이블변수 SQLWorld Study Group - 최명환 -.
11장. 보안과 권한 관리 보안 권한 관리. 11장. 보안과 권한 관리 보안 권한 관리.
6 객체.
Presentation transcript:

학습목표 학습목표 본 장은 데이터베이스를 조작하기 위한 SQL 문중에서 특별히 데이터베이스의 정의와 관련된 명령어인 DDL을 쿼리분석기를 사용하여 하나씩 실습을 통해서 학습한다. DDL 명령어로 데이터베이스 생성과 삭제, 테이블 생성, 수정, 삭제 등을 할 수 있다. 또한 데이터 검색의 효율을 높이기 위해 사용하는 인덱스의 생성과 삭제 에 대해 학습한다.

1. SQL SQL 특징 초기의 SQL : 데이터 삽입, 삭제, 조회, 갱신 기능 제공 1992 년 ANSI 에서 채택된 관계 데이터 언어의 표준 비절차적 언어 단말기에서 데이터베이스 직접 조작용으로도 사용 가능하고 응용 프로그램 속에 삽입된 형태로도 사용 가능 기능에 따른 SQL의 종류 DDL(Data Definition Language) DCL(Data Control Language) DML(Data Manipulation Language)

2. D D L(데이터 정의어) 란? D D L 2.1 D D L 종류 데이터베이스, 테이블, 뷰, 인덱스, 도메인, 제약조건 등 각종 개체를 생성, 수정, 삭제하는 관리기능을 제공하는 명령어 DDL종류 적용 기능 CREATE Database, Domain, Table, Index, View 데이터베이스, 도메인, 테이블, 인덱스, 뷰 등 개체 생성 명령 DROP Table, Index, Constraint, View 데이터베이스, 도메인, 테이블, 인덱스, 제약조건, 뷰 등 개체 삭제 명령 ALTER Table, Domain 테이블, 도메인 수정

D D L 2.2 데이터 형식 종류 데이터 타입 기능 기본크기 정수 INT -231 ~ 231 - 1 사이의 정수 4 bytes 고정소숫점 DECIMAL -1038 + 1 ~ 1038 -1 사이의 십진수 기본 9 bytes 실수 FLOAT(N) -1.79E+308 ~ 1.79E+308사이의 실수 8 bytes 문자 CHAR(N) N 자리 고정길이 문자열 최대 8000 bytes 이진데이터 BINARY 고정길이 이진데이터 저장 특수 BIT(N) 0, 또는 1 1 bytes TABLE 결과 집합을 테이블형태로 저장 - 날짜/시간 DATETIME 1753.1.1 ~ 9997.12.31 사이의 날짜 통화 MONEY -263 ~ 263 - 1 사이의 숫자

<엔터프라이즈 관리자 창에서 테이블 생성 시의 데이터 형식 선택 화면> D D L 2.2 데이터 형식-계속 <엔터프라이즈 관리자 창에서 테이블 생성 시의 데이터 형식 선택 화면>

D D L 2.2 데이터 형식-계속 << 사용자 정의 데이터 형식 >> << 사용자 정의 데이터 형식 >> 용도 : 여러 테이블에서 공동으로 사용되는 항목을 따로 등록해 두고 사용하는 방법 생성 예 : EXEC sp-addtype id_newpass ‘char(20)’ 사용 예 : CREATE TABLE 고객(고객ID char(20) PRIMARY KEY,                    패스워드 char(20) not null,                새패스워드 id_newpass,          주소 char(50), ......) 삭제 예 : EXEC sp-droptype id_newpass

<<쿼리분석기에서 사용자 정의 데이터 형식 실행 결과 >> D D L 2.2 데이터 형식-실습하기 2 1 3 <<쿼리분석기에서 사용자 정의 데이터 형식 실행 결과 >>

D D L 2.3 도메인 테이블에서 사용하는 열(column)을 미리 정의해 두는 방법 시스템에 따라 지원하지 않는 경우도 있다. 생성 예 : CREATE DOMAIN dm_degree char(10) DEFAULT 'silver' 사용 예 : CREATE TABLE memberTable (                m_id char(10) not null, ..... m_degree dm_degree,      ..... ) 수정 예 : ALTER DOMAIN dm_degree char(12) 삭제 예 : DROP DOMAIN dm_degree RESTRICT

3. 데이터베이스 생성 및 삭제하기 2 1 3 DB 생성 및 삭제 3.1 데이터베이스 생성 실습 : ‘test_db' 라는 데이터베이스를 생성하라.  명령 :  CREATE DATABASE test_db 결과 : 2 1 3

DB 생성 및 삭제 3.2 데이터베이스 삭제 사용하지 않은 데이터베이스를 삭제한다. 테이블 등을 열고 사용 중인 데이터베이스나 복제용으로 지정된 데이터베이스는 삭제할 수 없다. 삭제 작업은 master 데이터베이스에서 해야 한다. 삭제 작업은 데이터베이스 소유자, 또는 데이터베이스 관리자 만이 할 수 있고 이 권한은 양도할 수 없다. 지정된 데이터베이스내의 모든 디스크 파일이 삭제된다. 실습 : ‘test_db' 라는 데이터베이스를 삭제하라.  명령 :  DROP DATABASE test_db

4. 테이블 생성 및 관리하기 4.1 테이블 생성 테이블 생성 및 관리 구문 형식 <참고> 개체이름 명명규칙 서버이름.데이터베이스이름.소유주이름.개체이름 예 : test_server.manpower.dbo.member_table

2 1 3 4.1 테이블 생성-계속 테이블 생성 및 관리 실습 : 아래 명령을 이용하여 ‘상품’ 테이블을 생성해 보라. 명령 :  CREATE TABLE 상품(                       상품코드 CHAR(10) NOT NULL PRIMARY KEY,                       소코드   CHAR(10) NOT NULL,                       색상코드 CHAR(10) NOT NULL,                       사이즈   CHAR(10) NOT NULL,                       재고수량 INT ) 결과 : 2 1 3

<<쿼리분석기에서 실행하고 개체 브라우저 창에서 확인한 모습>> 테이블 생성 및 관리 4.2 테이블 수정 실습 : ‘상품’ 테이블에 ‘비고’ 라는 열을 추가하고 기본 값을 ‘정품’으로 주어라.   명령 : ALTER TABLE 상품 ADD 비고 char(10) default '정품' 결과 : <<쿼리분석기에서 실행하고 개체 브라우저 창에서 확인한 모습>>

4.2 테이블 수정-계속 4.3 테이블 삭제 테이블 생성 및 관리 실습 : ‘상품’ 테이블에서 ‘비고’라는 열의 크기를 4.2 테이블 수정-계속 실습 : ‘상품’ 테이블에서 ‘비고’라는 열의 크기를 CHAR(30)으로, 기본값을 ‘기획’ 으로 변경하라.  명령 : ALTER TABLE 상품            ALTER COLUMN 비고 CHAR(30) SET DEFAULT '기획' 실습 : ‘상품’ 테이블에서 ‘비고’라는 열의 기본값을 제거하라.  명령 : ALTER TABLE 상품  ALTER COLUMN 비고 DROP DEFAULT 실습 : ‘상품’ 테이블에서 ‘비고’라는 열을 제거하라.  명령 : ALTER TABLE 상품 DROP COLUMN 비고 CASCADE 4.3 테이블 삭제 실습 : ‘상품’ 테이블을 삭제하여라.  명령 : DROP TABLE 상품

4.4 테이블의 제약조건과 데이터 무결성 테이블 생성 및 관리 적절한 제약조건을 테이블에 정의하면 DBMS는 데이터의 무결성을 지원한다. 실습 : 다양한 제약조건을 가진 ‘상품1’ 테이블을 생성하여라.  명령 : CREATE TABLE  상품1(              번호      INT IDENTITY PRIMARY KEY,              상품코드  CHAR(10) NOT NULL,              상품명    CHAR(30) NOT NULL UNIQUE,              분류코드  CHAR(10) NOT NULL                         CHECK(분류코드 IN (‘셔츠‘,’쟈켓‘,‘바지’,‘점퍼’)),              색상코드  CHAR(10) NOT NULL,              사이즈    CHAR(10) NOT NULL DEFAULT ‘XL’,              재고수량  INT,              FOREIGN KEY(색상코드) references 색상분류(색상코드)                         ON DELETE NO ACTION                         ON UPDATE CASCADE );

<<쿼리분석기에서 실행하고 개체 브라우저 창에서 확인한 모습>> 테이블 생성 및 관리 4.4 테이블의 제약조건과 데이터 무결성- 계속 결과 : <<쿼리분석기에서 실행하고 개체 브라우저 창에서 확인한 모습>>

4.4 테이블의 제약조건과 데이터 무결성- 계속 테이블 생성 및 관리 Foreign Key 정의에 의해 DBMS가 검사한 데이터 오류 상품 테이블의 색상코드는 색상테이블의 색상코드를 참조한다. 노랑이라는 값은 참조할 수 없어 오류 처리하였다.

5. 인덱스를 사용하자 5.1 인덱스 사용 이유 인덱스 사용 5. 인덱스를 사용하자 5.1 인덱스 사용 이유 대규모 데이터 파일에서 특정 항목을 이용한 질의의 효율을 높여 응답 시간을 단축 하는 것이 인덱스를 사용하는 목적이다. 기본 키를 지정하면 테이블은 기본 인덱스가 자동 생성된다. 기본 키 외의 다른 항목을 이용한 검색을 위해서는 인덱스를 생성해 주어야 한다. 모든 인덱스는 오름차순으로 정렬된다. 인덱스를 이용하면 특정 레코드에 대한 임의 접근이 가능하다. 인덱스를 이용하면 데이터의 삽입, 삭제 시에 인덱스의 변경도 수행되므로 소규모 데이터인 경우 데이터베이스의 효율을 떨어뜨리게 된다.

기본인덱스 : 인덱스 지정 항목이 기본 키인 경우 인덱스 사용 5.2 인덱스의 종류 기본인덱스와 보조인덱스 기본인덱스 : 인덱스 지정 항목이 기본 키인 경우 보조인덱스 : 인덱스 지정 항목이 기본 키가 아닌 경우 단순인덱스와 복합인덱스 단순인덱스 : 단일 항목으로 구성된 인덱스 복합인덱스 : 두 개 이상의 항목으로 구성된 인덱스 CLUSTED 인덱스와 NONCLUSTED 인덱스 CLUSTED 인덱스 : 한 테이블의 테이블 자체를 인덱스화 하여 하나만 존재, 데이터 테이블이 정렬되어 있다. NONCLUSTED 인덱스 : 한 테이블에 여러 개의 인덱스가 존재, 데이터와 인덱스가 분리된 일반적인 형태 UNIQUE 인덱스와 NONUNIQUE 인덱스 UNIQUE 인덱스 : 인덱스 항목의 값이 중복되지 않고 유일한 값만 올 수 있는 인덱스 NONUNIQUE 인덱스: 중복이 허용되는 인덱스

5.3 인덱스의 생성과 삭제 인덱스 사용 인덱스의 생성 CREATE [UNIQUE] [ CLUSTED | NONCLUSTED] 구문형식 CREATE [UNIQUE] [ CLUSTED | NONCLUSTED] INDEX 인덱스이름 ON 테이블이름(열이름 [, 열이름, 열이름...] ) 실습1 : ‘고객’ 테이블에 ‘주민번호’를 이용한 ‘jumin_no_idx’ 란 인덱스 생성.  명령 : CREATE UNIQUE INDEX jumin_no_idx ON 고객(주민번호) 실습2 : ‘고객’ 테이블의 ‘성명’ 필드와 ‘전화번호’ 필드를 묶어 복합인덱스 ‘member_idx’ 생성  명령 : CREATE INDEX member_idx ON 고객(성명, 전화번호) 실습3 : ‘고객’ 테이블에 기본키를 추가하여 기본 인덱스를 생성.  명령 : ALTER TABLE 고객 ADD CONSTRAINT                                 PK_member  Primary Key (고객ID) 인덱스의 삭제 실습 : ‘고객’ 테이블의 ‘m_name_idx’라는 인덱스를 제거하라.  명령 : DROP INDEX 고객.m_name_idx

5.3 인덱스의 생성과 삭제-계속 인덱스 사용 엔터프라이즈 관리자에서 인덱스의 생성 작업순서 : 엔터프라이즈 관리자->인덱스설정 테이블 선택-> 단축메뉴의 모든 작업 선택->인덱스 관리->새로 만들기 버튼 클릭->인덱스 설정할 필드 선택, 인덱스 이름 정하기->확인

2 1 3 5.3 인덱스의 생성과 삭제-계속 인덱스 사용 쿼리분석기에서 인덱스의 생성 실습 : ‘고객’ 테이블의 ‘성명’ 을 이용한 인덱스 ‘m_name_idx’ 생성  명령 : CREATE INDEX m_name_idx ON 고객(성명) 결과 : 2 1 3

5.4 성능을 위한 인덱스의 검사 인덱스 사용 CLUSTED 인덱스 사용 5.4 성능을 위한 인덱스의 검사 CLUSTED 인덱스 사용 기본 키 보다는 주 검색대상을 CLUSTED 인덱스로 지정 CLUSTED 인덱스 항목은 20 byte 가 넘지 않도록 설계 갱신보다는 읽기 전용인 항목을 CLUSTED 인덱스로 지정 NONCLUSTED 복합인덱스 사용 검색에 자주 이용되는 항목을 NONCLUSTED 복합인덱스로 구성하면 단일 CLUSTED 인덱스보다 효율적 인덱스 페이지에 빈 공간 확보하기 삽입, 삭제 등이 빈번한 데이터의 경우 인덱스 페이지 구성을 위해서 이동이 많으므로 약간의 여유 공간이 있으면 효율적 인덱스 다시 만들기 삭제가 많이 진행된 인덱스 페이지는 빈 공간이 많아 속도가 떨어지므로 주기적으로 인덱스를 다시 생성하는 것이 효율적 WITH DROP_EXISTING을 이용하여 인덱스를 생성하면 기존의 관계를 유지하면서 새로 생성 가능

답: DML, 테이블 답: CREATE 단원 요약 단원요약 1 ★ SQL은 기능에 따라 DDL, DCL, 로 나누어진다. ? 단원요약 2 ★ 개체를 생성하는 데는 문이 사용되고 개체를 수정하는 데는 ALTER 문이 사용된다. 사용이 더 이상 되지 않는 개체는 DROP 문으로 제거할 수 있다. ? 답: CREATE

답: 제약조건 답: 제거하고 다시 생성 단원 요약 단원요약 3 ★ 데이터의 무결성을 위해서 테이블을 생성할 때 기본 값, 유효범위 지정, 기본 키 및 외래 키 지정, NULL 허용 등 다양한 종류의 을 지정할 수 있다. ? 답: 제약조건 단원요약 4 ★ 효과적인 검색 성능을 위해 인덱스를 검사해 볼 필요가 있다. 삽입, 삭제 등이 빈번한 데이터인 경우는 인덱스 페이지에 여유 공간이 있는 것이 좋고 삭제가 많이 진행된 데이터의 인덱스는 기존의 인덱스를 하는 것이 좋다. ? 답: 제거하고 다시 생성