목록데이터 베이스 (11)
개발자 끄적끄적
- 일반 응용 프로그램의 구성 - 명령어들의 집합(함수나 클래스 단위로 구성) - 데이터베이스 응용 프로그램의 구성 - 업무처리에 관련된 세부 프로그램 단위 - 세부 프로그램들은 데이터베이스에 대한 연산(검색/삽입/삭제/수정)으로 구성 - 예를 들어 은행에서 계좌이체, 대출, 예금, 출금 등의 업무 - 트랜잭션 - 논리적인 작업 단위를 구성하는 연산들의 집합 - 실행 중 멈추거나 중단되지 않는 최소 작업 단위 - 데이터베이스 응용 프로그램은 트랜잭션의 집합 - 대부분의 DBMS들은 이러한 상황을 방지하기 위한 기능을 갖춘다 - 데이터베이스 개발자는 작업 단위들을 트랜잭션으로 적절히 정의해야 한다 - 즉, 트랜잭션을 정의하는 것은 전적으로 개발자의 의무 - ACID 특성(ACID property) - 원자..
- 실행 예 S(S#, SNAME, STATUS, CITY) //제품 PRIMARY KEY(S#) P(P#, PNAME, COLOR, WEIGHT, CITY) //공급자 PRIMARY KEY(P#) SP(S#, P#, QTY) PRIMARY KEY(S#, P#) FOREIGN KEY(S#)REFERENCES S FOREIGN KEY(P#)REFERENCES P SCP 테이블 S# CITY P# QTY S1 LONDON P1 100 S1 LONDON P2 100 - R을 릴레이션이라고하고 X와 Y를 R의 속성 집합의 임의의 부분 집합이라고 하자 그러면 'X가 Y에 함수적으로 종속' 되기 위한 필요 충분 조건은 R에 있는 각각의 X 값이 R에 있는 정확히 하나의 Y값과 관련을 갖는 것이다 - 이를 기호로 표..
- 사용자의 요구사항(requirements)으로부터 현실세계를 반영한 데이터베이스 구조 도출해내는 과정 - 어떠한 필드로 구성된 테이블을 어떠한 물리적 형태의 데이터베이스로 구성할 것인가를 결정 - 요구사항 분석 - DB 사용환경 분석 후 대상 및 제한 조건 도출 - 개념적 설계(conceptual schema) - 분석 결과를 추상화한 표현 방식으로 기술 -> 개념적 스키마 생성 - 논리적 단계(logical schema) - 논리적 데이터베이스 구조에 맞는 스키마 생성 -> 논리적 스키마 생성 - 물리적 설계 - 실제 컴퓨터에 저장되는 방식 설계 - 사용자의 요구사항 분석 후, 컴퓨터에 표현방식보다는 추상적인 형태로 설계 - 사용자가 이해하기 쉬운 형태로 표현 - 개념적 모델을 이용하여 개념적 스키..
- 테이블과 레코드들은 HDD에 저장 - 운영체제가 관리하는 파일 시스템 이용 - 기본 저장 구조는 파일 - 입출력 단위는 블록(block) - 블록(block) - 하나 이상의 레코드들이 저장 - 각 블록은 하나의 테이블에 속한다 - 파일 - 하나 이상의 테이블들이 저장 - 자주 검색되는 필드를 기준으로 관련 레코드들을 같은 블록에 저장 - 왜 사용할까? - 파일 내 레코드의 위치를 빨리 찾기 위해 - 인덱스가 없으면 순차 검색해야 한다 - 인덱스의 예 - 도서관의 책 정렬 - 사전의 단어 정렬 - 전화번호부의 이름 정렬 - 레코드에 대한 물리적 저장위치를 별도로 기록 - 인덱스의 구조 - 인덱스 엔트리 : (검색키, 주소) - 검색키 : 테이블에 속한 한 개 이상의 필드 - 기본키 - 레코드의 검색,..
- 기본키 무결성 제약 - 참조 무결성 제약 - NOT NULL - UNIQUE - CHECK - DEFAULT - 오라클의 권한 종류 - 시스템 권한(System privileges) - 사용자의 생성, 테이블이나 테이블 스페이스의 생성 등과 같이 주로 시스템의 자원을 관리할 수 있는 권한 - 데이터베이스 관리자 계정(sys, system)은 모든 시스템 권한을 가진다 - 객체 권한(object privileges) - 해당 객체에 대해 select, insert, delete, update 등과 같은 DML을 실행 할 수 있는 권한 - 객체 - 테이블이나 뷰 또는 사용자 정의 함수 등 1. 사용자 - create user : 사용자 계정을 생성할 수 있는 권한 - drop user : 사용자 계정을 ..
- 사용자가 특정 객체에 대해 특정 연산을 실행할 수 있는 권리 - 특정 객체 - 테이블 부, 필드 등 데이터베이스의 구성 요소 - 권한 제어가 가능한 연산의 종류 - 데이터의 접근권한 연산(DML) - SQL의 select, insert, delete, update 등 - 스키마 관련 연산(DDL) - 스키마를 수정하는 연산 - create table, alter table, drop table, create index 등 - 데이터베이스 관리자(DBA) - DBMS내의 모든 객체에 대해 모든 권한 - 객체에 대한 연산, 객체의 제거와 변경을 포함 - 다른 사용자에게 해당 객체에 대한 권한을 부여하거나 회수 - 객체 소유자(owner) - 특정 사용자가 객체를 생성한 사용자 - 생성한 객체에 대해 모든..
- 문자열에 대해서는 일부분만 일치하는 경우를 찾아야 할 때 사용 - '=' 연산자 대신에 'like 연산자'를 사용 - '='는 정확히 일치하는 경우에만 사용 - 형식 where like - 에 지정된이 들어 있는 지를 판단 - 문자열 패턴 종류 - _ : 임의의 한 개 문자를 의미 - % : 임의의 여러 개 문자를 의미 - ‘%서울%’ : ‘서울’이란 단어가 포함된 문자열 - ‘%서울’ : ‘서울’이란 단어로 끝나는 문자열 - ‘서울%’ : ‘서울’이란 단어로 시작하는 문자열 - ‘_ _ _’ : 정확히 세 개의 문자로 구성된 문자열 - ‘_ _ _%’ : 최소한 세 개의 문자로 구성된 문자열 - ex) student 테이블에서 김씨 성을 가진 학생들을 찾는 질의 select * from studen..
- SQL은 자연어와 유사하고 '비절차적 언어'이므로 사용하기 용이하다 비절차적 언어 : what to do - 표현력이 떨어진다 절차적 언어 : how to do - SQL은 크게 DDL과 DML로 구성된다 - 데이터 정의 언어(DDL : Data Definition Language) - 데이터 저장 구조를 명시하는 언어 - '테이블 스키마(table schema)'의 정의, 수정, 삭제 - 자동 commit 즉, rollback 불가 -> drop table - 데이터 조작 언어(DML : Data Manipulation Language) - 사용자가 데이터를 접근하고 조작할 수 있게 하는 언어 - '레코드(인스턴스)'의 검색(research), 삽입(insert), 삭제(delete), 수정(upd..
- 네트워크 환경 지원 - 다양한 운영체제 지원 - 대용량 데이터 처리 지원 - 여러 사용자의 동시 접속 지원 - 신뢰성 높은 보안 기능 제공 - 오류 및 장애에 대한 대비책 지원 - 논리적 구성요소 - 데이터 블록(data block) - 익스텐트(extent) - 세그먼트(segment) - 테이블스페이스(tablespace) - 물리적 구성요소 - 데이터파일 - 컨트롤 파일 - redo 로그 파일 - 매개변수 파일 - alert/trace 로그 파일 - 백업 파일 1. 테이블보기 - 현재 사용자 계정에서 사용하는 테이블 정보 - 형식 : select* from tab; //tab은 table이름 2. 직전에 실행했던 며령문 보기 및 실행 - list, run - list : 바로 직전에 사용한 명령..
- 물리적 혹은 추상적으로 존재하는 '현실세계를 단순화(추상화)'하고 '정형화된 형태(데이터가 애매모호하지 않은, 즉 누군가에게 질문을해도 동일한 답을 낼 수 있는)로 표현'하는 하나의 방식 또는 규범 - 실제 데이터가 갖는 특성을 살리면서, 목적에 맞게 '관심있는 정보만'을 '단순화'하여 표현하는 방식 - 데이터에 대한 '조작이 가능'해야한다 - 관계형 데이터 모델(Relational data model) - 테이블 형식을 이용하여 데이터들을 정의하고 설명한 모델 - 실세계의 데이터가 누구나 직관적으로 이해할 수 있는 형태로 기술할 수 있는 간단한 방식을 제공 - 테이블(Table)을 릴레이션(Relation)이라고 부른다. 즉, 독립적인 테이블이 여러 개가 있을 때 연관성이 있는 집합을 테이블로 구성..
데이터베이스(database) - 정보를 필요에 따라 모아놓은 것 - 조직이나 개인이 사용하는 '조작 가능한', '저장된' 데이터의 모임 ->조작 가능한 : 컴퓨터로, '저장된' 디스크 등 ex) 사장실의 파일 캐비닛 - 주소록, 계약서 등을 관리(각각 하나의 데이터베이스를 구성), 각각의 파일을을 모아 놓으면 데이터베이스(database)라고 한다 ->여러 테이블이 모이면 데이터베이스가 구성된다 - 편리한 사용을 위해 '정렬, 분류' - 파일 삽입, 삭제, 검색, 갱신 등 - '컴퓨터(=조작가능한)'를 이용하여 이러한 작업을 대행할 수 있다 - 데이터, 정보 그리고 지식 1. 데이터(data) => 사실, 값, 객관적 - 실세계의 실체를 묘사하는 '값' - '정형화(어떤 타입을 갖는 값)'되고 '기록할..