장점 | 단점 |
종속성 및 중복성 최소화 일관성 및 무결성 유지 공유 및 보안성 강화 실시간 처리 가능 | 전문가 부족 전산화 비용 증가 시스템이 복잡하고 느림 파일 회복이 어려움 |
정의어(DDL) (DBA 사용) | DB를 생성하거나 자료 형태(Type)와 구조 등을 수정하여 데이터를 이용하는 방식을 정의 하는 기능 CREATE, ALTER, DROP |
조작어(DML) (사용자 사용) | 데이터의 검색, 삽입, 삭제, 변경 등을 처리하는 기능 SELECT, INSERT, DELETE, UPDATE |
제어어(DCL) (DBA 사용) | 데이터의 무결성을 유지하기 위한 보안 및 권한 검사, 병행 제어 등의 기능을 정의하는 기능 COMMIT, ROLLBACK, GRANT, REVOKE |
1단계 (개념적 설계) | 요구사항을 분석하여 E-R D(Entity(개체)-Relationship(관계) Diagram)와 같은 개념적 구조 설계 |
2단계 (논리적 설계) | DBMS에 적합한 테이블의 구조로 설계 |
3단계 (물리적 설계) | DBMS로 구현 가능한 물리적 구조(H/W) 설계 |
외부스키마 | 일반 사용자나 응용프로그래머의 관점에서 본 스키마 ( 서브 스키마 = 사용자 뷰 ) |
개념스키마 | DB의 전체적인 논리적 구조이며 접근 권한, 보안정책, 무결성 규칙에 대한 정의 (스키마) |
내부 스키마 | DB 전체적인 물리적 구조 시스템 설계자의 관점에서 본 스키마 (물리 스키마) |
데이터 형식 | 설명 |
---|---|
짧은 텍스트 | 텍스트 + 숫자 = 255자 |
긴 텍스트 | 텍스트 + 숫자 = 63999자 |
숫자 | 바이트 = 1 Byte |
정수 = 2 Byte | |
정수(Long) = 4 Byte | |
실수(Single) = 4 Byte | |
실수(Double) = 8 Byte | |
날짜 / 시간 | 100년 ~ 9999년까지 입력가능 = 8 Byte |
통화 | 정수 15, 소수 4자리까지 입력가능 = 8 Byte |
일련 번호 | 자동으로 번호가 부여 됨 데이터가 입력된 후에는 선택 불가능 삭제된 일련 번호는 다시 부여되지 않음 정수(Long) = 4 Byte, 복제 ID = 16 Byte |
Yes/No | Yes/No, True/False,, On/Off 선택 가능 = 1 Bit |
OLE 개체 | 개체 연결 포함, 기본키 설정 불가능 = 1 GB |
하이퍼링크 | 주소 데이터 입력 =2048자 |
첨부파일 | 이메일에 파일을 첨부하는 것처럼 파일 첨부 기본키 설정 불가능 |
행 원본 유형 | 테이블 / 쿼리, 값 목록, 필드 목록 |
행 원본 | 원본의 값 입력 |
바운드 열 | 실제로 저장 되는 열 |
열 개수 | 열 개수 |
열 이름 | 열 이름의 표현 여부 |
열 너비 | 열 너비 설정 (예: 1cm ; 2cm) |
행 수 | 목록의 행 개수 설정 |
목록 너비 | 전체 너비 |
목록 값만 허용 | 목록 값만 입력할 수 있도록 설정 |
속성 | 설명 |
---|---|
형식 | 엑셀의 표시형식과 같음 |
캡션 | 데이터시트에서 보여 지는 레이블 (제목) |
기본값 | 자동으로 입력되어 있는 기본값 |
필수 | 필수로 입력하는 속성 |
빈 문자열 허용 | 빈 문자열을 허용하는 속성 |
IME 모드 | 자료 입력 형태(한글, 영어)를 설정함 |
소수 자릿수 | 소수점 이하 자릿수 결정 |
필수 | 데이터 | 선택 |
---|---|---|
0 | 숫자 | 9 |
L | 문자 | ? |
A | 문자+숫자 | a |
숫자+기호 | # | |
대문자 | > | |
소문자 | < | |
암호 | Password |
- 데이터베이스를 이용할 때 사용하는 언어 (질의어)
데이터의 무결성을 유지하기 위한 보안 및 권한 검사, 병행 제어 등의 기능을 정의하는 기능
* COMMIT(완료, 승인), ROLLBACK(취소), GRANT(권한부여), REVOKE(권한회수)
DB를 생성하거나 자료 형태(Type)와 구조 등을 수정하여 데이터를 이용하는 방식을 정의 하는 기능
CREATE TABLE 과목 ( 코드 CHAR(5) NOT NULL, 과목명 CHAR(9), PRIMARY KEY(코드) ); | 과목 테이블 만들기( 코드 문자 5 널값X 과목명 문자 9 기본키 코드 ); |
CREATE TABLE 학생( 순번 INTEGER, 신청일 DATETIME, 코드 CHAR(5), FOREIGN KEY(코드) REFERENCES 과목 ); | 학생 테이블 만들기( 순번 숫자 신청일 날짜 시간 코드 문자 5 외래키 코드 과목 테이블 ); |
학생 테이블을 이용한 SQL | 주석 |
ALTER TABLE 학생 ADD 성적 INTEGER; |
학생 테이블 성적필드 숫자형식 추가; |
ALTER TABLE 학생 ALTER 성적 CHAR(5); |
학생 테이블 성적필드 문자형식 변경; |
학생 테이블을 이용한 SQL | 주석 |
DROP TABLE 학생; | 학생 테이블 삭제 |
SQL | 주석 |
SELECT 필드 FROM 테이블 | |
SELECT * FROM 학과; |
모든 필드 검색 학과 테이블에서 |
WHERE 조건, AS는 별칭(별명)을 뜻함 | |
SELECT 이름 AS 성명, 점수 FROM 학과 WHERE 점수>=80; |
이름은 성명, 점수 검색 학과 테이블에서 점수가 80이상인 자료만 |
자료를 묶을땐(그룹) GROUP BY | |
SELECT LEFT(이름, 1) AS 성, COUNT(학번) AS 인원 FROM 학과 GROUP BY LEFT(이름,1); |
이름 왼쪽 한글자는 성, 학번 수는 인원으로 검색 학과 테이블에서 이름 왼쪽 한글자를 그룹으로 묶어서; |
GROUP BY의 조건은 HAVING으로 사용 | |
SELECT LEFT(이름,1) AS 성, COUNT(학번) AS 인원 FROM 학과 GROUP BY LEFT(이름,1) HAVING LEFT(이름,1)='김'; |
이름 왼쪽 한글자는 성, 학번 수는 인원으로 검색 학과 테이블에서 이름 왼쪽 한글자를 그룹으로 묶어서 이름 왼쪽 한글자 = 김; |
ORDER BY 정렬 (ASC,생략-오름차순) (DESC-내림차순) | |
SELECT * FROM 학과 ORDER BY 생일 DESC; |
모든 필드 검색 학과 테이블에서 생일을 내림차순 정렬 |
SQL | 주석 |
INSERT INTO 교과(학번, 전공) VALUES ('2001', '컴활1급'); |
교과 테이블의 학번 전공 필드에 2001, 컴활1급 삽입 |
INSERT INTO 교과 VALUES ('2002', '컴활2급') |
교과 테이블의 2002, 컴활2급 삽입 |
INSERT INTO 교과(학번, 전공) SELECT * FROM 추가교과; |
교과 테이블의 학번, 전공 필드에 추가교과 테이블의 값 삽입; |
SQL | 주석 | |
UPDATE 교과 SET 전공='지울것' | WHERE 학번>='2000'; | 교과 테이블의 전공을 '지울것'으로 수정 학번이 2000이상인 자료만 |
SQL | 주석 |
DELETE FROM 교과 WHERE 전공='지울것'; |
교과 테이블의 전공이 지울것인 자료 삭제 |
행 머 리 글 1 | 행 머 리 글 2 | 행 머 리 글 3 | 열 머리글 |
값 | |||
보고서 머리글 | 보고서 처음 한번 출력 (일반적으로 로고, 제목 및 날짜 등의 정보를 표시) |
페이지 머리글 | 매 페이지 상단 출력 |
그룹 머리글 | 그룹 첫 번째 레코드 위 출력 |
본문 | 모든 레코드 출력 (레코드 원본의 모든 행에 대해 한 번씩 출력 됨, 컨트롤이 추가) |
그룹 바닥글 | 그룹 마지막 레코드 아래 출력 |
페이지 바닥글 | 매 페이지 하단 출력 |
보고서 바닥글 | 보고서 마지막 한번 출력 (보고서 총합계 또는 전체 보고서에 대한 기타 요약 정보를 표시) |
* 모든 영역에 함수 사용 가능 |