1.16k likes | 1.21k Views
Learn about UniSQL, a versatile OODBMS with multi-DBMS connectivity. Discover UniSQL's features, installation process, system requirements, and database management utilities. Guide on DB creation, volume addition, and deletion using UniSQL commands.
E N D
Object-Oriented Extension Internet Environment 멀티미디어 프레임웍 RDBMS Relational Concept OODBMS ORDBMS Connectivity Multi-DBMS 연결 UniSQL 개념
WWW Browser 4GL client UniSQL 제품 구조도 UniCAS • C API • ESQL/X • C++ API • Smalltalk WEB server API UniSQL/X PHP Multi Media Framework UniWEB RDBMS JDBC WAS OODBMS • SQL/X • Visual SQL/X Tool *UniSQL/M Vision3 ODBC File based M/M
제공 툴 • SQL/X • dos나 Unix 터미널에서 사용하는 interactive interface • Visual-SQL • SQL/X의 기능을 window 상에서 수행 • 데이터 조작/클래스 생성 및 변경 위저드 제공 • 엑셀 데이터의 Import/Export • 검색 결과 편집 기능 • Easy-Manager • window상에서 UniSQL과 UniCAS를 통합적으로 운영/관리
UniSQL 제품 설치하기 • 지원하는 플랫폼 확인하기 • Unix 계열 • sun Microsystems SPARC with solaris 2.6 이상 • IBM RS/6000 with AIX 4.3.x • HP with HP-UX 11.0 • Compaq Alpha with Tru64 unix • Intel Pentium-compatible with red hat linux 7.1 • Window 계열 • Intel Pentium-compatible with window NT 4.0 • Intel Pentium-compatible with window 2000 • 필요한 시스템 자원 확인하기 • Memory 128M 이상, Hard disk 150M 이상 • UniSQL 사이트 (http://dev.unisql.com)에 계정 생성
소프트웨어가 있는 곳 • http://dev.unisql.com
UniSQL 운영 및 관리 • Easy-Manager • UniSQL과 UniCAS를 운영하기 위한 소프트웨어로 window상에서 제공되는 GUI환경 관리 도구이다. • Utilities • 데이터베이스 관리 작업을 위해 사용자가 터미널 상에서 직접 명령어를 입력하여 사용하는 유틸리티이다.
Utilities • UniSQL 데이터베이스를 운영/관리의 편의를 위해 제공되는 프로그램들 • C:\UniSQL\UniSQL 디렉토리에 존재 • 기능 • 데이터베이스 생성/ 삭제 – createdb/deletedb • 데이터베이스 서버 확인- commdb • 데이터베이스 공간 확인- spacedb • 데이터베이스 볼륨 추가 - addvoldb
DB 생성하기 : createdb • 데이터베이스를 생성하고 built-in UniSQL/X 시스템 클래스(system class)를 초기화함 • %UNISQLX_DATABASES (C:\UniSQL\UniSQL) 디렉토리에 ordblist.txt 파일에 생성된 데이터베이스의 위치 정보가 기록됨 • 사용방법 createdb [ options ] database_name createdb –p 500 –ps 8196 demodb 페이지 크기가 8KB인 500개 page를 갖는 demodb라는 데이터베이스 생성 데이터베이스 페이지(page)란? 데이터 저장의 기본 단위로서 데이터베이스 생성시 그 크기가 결정. 데이터베이스내의 모든 페이지는 같은 크기이며, 생성시 지정된 페이지 크기는 변경이 불가능하다. 크기는 2의 배수로 1K 이상 16K 이하로 디폴트 값은 4K이다
DB 생성하기 : createdb(cont.) • 어떤 파일들이 생성되는가? • 데이터베이스 초기 파일(DB-name) • 로그 볼륨(DB-name_lgat) • 볼륨 정보 파일(DB-name_vinf) • 로그 정보 파일(DB-name_lginf) 볼륨(volume)이란? • 데이터베이스가 사용하는 운영체제의 파일을 말한다
DB 볼륨 추가하기 : addvoldb • 왜 추가해서 사용하는가? • 데이터베이스가 초기화될 때 생성되는 generic 볼륨 하나로 운영하는 것보다 용도별 볼륨을 분산하는 것이 성능상 효율적이다 • 볼륨의 자동 증가 • 용도별 볼륨의 종류 • generic : 어떤 용도로도 사용 가능 • data : 클래스, 인스턴스, 멀티미디어 등의 데이터 저장 • index : 인덱스, 해쉬 등의 데이터 지원 정보 저장 • temporary : 질의 처리나 정렬할 때 사용
DB 볼륨 추가하기 : addvoldb(cont.) • 사용법 addvoldb [options] database_name number_of_pages addvoldb –sa –pu data demodb 500 데이터 저장 목적으로 볼륨 500 페이지 추가 • 옵션
DB 볼륨 정보 확인하기 : spacedb • 생성하고 확장한 데이터베이스 볼륨의 요약 정보를 화면에 출력 • 볼륨 ID와 이름 • 각 볼륨의 용도 • 각 볼륨의 총 사용량과 여유 공간 크기 • 볼륨의 전체 개수 • 데이터베이스 총 사용량과 여유 페이지 크기 • 사용법 spacedb [-sa | -cs] database_name spacedb - sa demodb
DB 삭제하기 : deletedb • 생성된 데이터베이스를 삭제 • 운영체제 파일 삭제 명령어(예를 들면, rm 또는 del)를 이용해서 삭제해선 안된다 • deletedb 유틸리티는 데이터베이스 관련 모든 파일을 삭제 • 데이터베이스 정보 파일(ordblist.txt)도 변경 deletedb [-o filename] database_name deletedb demodb
DB 프로세스 • 마스터 • 서버와 클라이언트간의 통신 담당 • 한 호스트에 하나의 마스터 존재 • 서버 • 클라이언트와 데이터베이스 간의 채널 • 데이터베이스 당 한 서버만이 연결 가능 • 한 호스트에서 여러 개의 서버 동작 가능 • 클라이언트 • 사용자와 데이터베이스 사이에서 상호작용 • 클라이언트 수는 이론적으로 제한이 없음
DB 서버 구동하기 : server • 생성된 데이터베이스 서버를 구동 server [-timeout second] database_name server demodb • 마스터가 수행중인 상태이어야 한다. • 주어진 timeout 시간 동안 서버가 구동 되지 않으면 종료된다
DB 서버 모니터링 : commdb • 마스터 데몬과 서버 프로그램들의 상태 정보를 화면에 출력 • 데이터베이스 서버 리스트 출력 • 서버 및 마스터 종료 commdb [options]
DB 서버 종료하기 : commdb -S • 수행중인 데이터베이스 서버를 종료 commdb -S database_name commdb -S demodb • kill 명령어로 서버를 종료하지 말아야 함 • ‘commdb –A’ 명령어는 마스터와 서버를 모두 종료한다.
SQL/X • command line 기반의 SQL/X 인터프리터 • X Windows 없이 모든 터미널 환경에서 사용 가능 • 모든 UniSQL/X 명령어의 입력, 편집, 수행 가능 • 결과를 파일이나 화면으로 출력 • SQL/X 명령어 sqlx [-sa | -cs] [-u 사용자이름 –p 암호 ] 데이터베이스_이름 sqlx –u dba -sa demodb • -sa 옵션은 standalone 모드 플래그 • -cs 옵션은 client/server 모드 플래그(default) • 사용자이름 의 default는 ‘public’
SQL/X * 명령어의 대문자 부분만 입력하면 실행된다. * ‘;Help’하면 세션 명령어 목록이 나타난다.
클래스 선언 구문 • 각 클래스 이름은 해당 데이터베이스에서 유일해야 함 • 클래스 내에서 애트리뷰트의 이름은 유일해야 함 CREATE [CLASS|TABLE]클래스이름 [(애트리뷰트_이름 데이터_타입 [DEFAULT값] [제약사항])]; 제약 사항 : NOT NULL UNIQUE
클래스 선언 구문 create class employee ( name varchar(50) not null, employee_# integer not null unique, fulltime varchar(50) default ‘yes’, birth_date date ); 애트리뷰트 이름 데이터 타입 constraint default value
Default value • 인스턴스가 생성될 때 값이 명시가 되지 않을 경우 애트리뷰트의 값은 default값으로 초기화 된다. • Default 옵션이 사용되지 않은 경우, 인스턴스가 생성될 때 애트리뷰트의 값은 NULL로 초기화 된다. • 공유(shared) 애트리뷰트와 default 옵션은 애트리뷰트 정의에 있어서 상호 배제 관계(mutual exclusion)이다.
Constraints • not null constraint • 애트리뷰트 값을 입력할 때 null값을 허용하지 않는 애트리뷰트 제약 조건이다. • unique constraint • 애트리뷰트 값을 입력할 때 값의 중복을 허용하지 않는 애트리뷰트 제약 조건이다.
클래스 제거하기 • 데이터베이스로부터 명시된 클래스의 스키마 정의부와 정의된 모든 메소드, 또 애트리뷰트에 저장된 모든 데이터(인스턴스)를 제거한다 • DROP address; • address 클래스 제거 • DROP address, employee; • address 클래스와 employee 클래스 함께 제거 DROP 클래스 이름
클래스 변경하기 • DBA나 클래스 소유권자, 인증을 받은 사용자는 alter구문을 사용하여 클래스를 변경할 수 있다. ALTERCLASS클래스 이름 변경사항; 변경 사항: • ADD애트리뷰트 추가 • DROP애트리뷰트 제거 • CHANGE초기값 변경 • RENAME애트리뷰트 이름 변경
클래스 변경하기 : ADD / DROP • 애트리뷰트 추가 • ALTER CLASS accommodations ADD ATTRIBUTE allows_pets char(3) default ‘NO’; • 애트리뷰트 제거 • ALTER CLASS accommodations DROP ATTRIBUTE allows_pets ;
클래스 변경하기 : CHANGE/RENAME • 초기값(default value) 변경 ALTER CLASS eatery CHANGE rating default ‘***’ ; • 애트리뷰트 이름 변경 ALTER CLASS location RENAME ATTRIBUTE lodging AS place_to_sleep;
클래스 이름 변경하기: RENAME • 데이터베이스에 존재하는 클래스의 이름을 변경 RENAME CLASS old_class_name AS new_class_name; RENAME CLASS cabin AS villa;
인스턴스 생성 • 인스턴스가 생성되는 것은 • 해당 클래스의 애트리뷰트(애트리뷰트) 값을 입력하는 것이고 • 객체 식별자인 OID를 부여 받는다 (예제) insert into location (lodging, country, city, street) values(‘한화콘도’, ‘한국’, ‘경기도’, ‘양평’;); insert into location default values; INSERTINTOclass_nameVALUES( value_list); INSERTINTOclass_name(attribute_list)VALUES( value_list); INSERTINTOclass_nameDEFAULT [VALUES]; 애트리뷰트를 일일이 나열하지 않고, 클래스이름을 명시하면 전체 애트리뷰트에 대해서 값을 입력해야 한다
Inserting with a query • 질의결과를 이용해서 데이터를 입력할 경우 • SELECT절과 INSERT절의 도메인은 일치해야 한다. insert into snack (serving_hours) selectserving_hours from dinner where proper_required = ‘yes’; insert into brunch(coffee_is_served, serving_hours, served_style, menu) select‘yes’, serving_hours, ‘no’, menu from breakfast; INSERTINTOclass_name ( attribute_list) SELECTquery_statement;
데이터 갱신 • 클래스의 인스턴스를 새로운 값으로 갱신 UPDATE resort SET cost = cost + 100 WHERE name = ‘korea resort’; UPDATE클래스이름 SET변경사항 [WHERE검색조건 ] 변경사항: • 애트리뷰트이름= { expression | NULL }
데이터 삭제 • 데이터베이스에서 불필요한 인스턴스 제거 DELETE FROM resort WHERE name = ‘korea resort’; DELETE FROM 클래스이름 [WHERE검색조건] 변경사항: • 애트리뷰트이름= { expression | NULL }
SELECT 구문의 기본 구조 SELECT attribute(s) FROMclass(es) WHERE predicate(s); 예제) SELECT name, country FROM resort WHERE cost > 200; resort 클래스에서 cost가 200보다 큰 resort의 이름과 국가를 검색하라
SELECT 절 • SELECT 절에는 애트리뷰트 이름과 DISTINCT( or UNIQUE), * 등이 올 수 있다 SELECT name, country from resort; 애트리뷰트 이름이 온 경우 SELECT UNIQUEcountry from resort; 애트리뷰트의 중복된 값을 제거한 경우 SELECT * from resort; 해당 클래스의 모든 애트리뷰트를 검색한 경우
FROM 절 • 기본적으로 클래스 이름을 명시 SELECT name FROM accommodations;
WHERE 절 • WHERE 절에서는 검색하고자 하는 인스턴스의 조건을 명시한다. 검색 조건으로 올 수 있는 술어(predicate)의 종류는 다음과 같다. • 비교 연산자 • =, <>, >, <, >=, <= • 정량자(quantifier) • ALL • SOME • 그 외의 술어(predicates) • BETWEEN • EXISTS • IN • LIKE • NULL
Quantifier • 특정 단일 값에 대하여 수식 또는 서브 질의의 모든 결과를 만족하는지(ALL)또는 적어도 하나를 만족하는지(SOME)에 대한 여부를 검사한다. select name, cost from resort where cost > ALL (select cost from hotel); hotel 클래스의 모든 cost가 resort 클래스의 cost보다 작아야 한다 select name, cost from resort where cost > SOME (select cost from hotel); hotel 클래스의 cost가 resort 클래스의 cost 중 하나 이상 보다만 크면 된다 expression비교연산자ALL | SOME expression
BETWEEN • 주어진 두 값 사이에 존재하는 인스턴스를 검색 select name, country, cost from hotel where cost between $100.00 and $150.00; cost가 $100.00와 $150.00 사이의 값인 hotel에 대해서 name, country, cost 검색 select name, country, cost from hotel where cost not between $100.00 and $150.00; cost가 $100.00와 $150.00 이외의 값인 hotel에 대해서 name, country, cost 검색 expression [ NOT] BETWEEN expression AND expression