달력

112024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

과목 1

1.  데이터 베이스 선정할 때 고려할 사항이 아닌 것

답 : 비용/안정성/범용성/용량/성능(속도)

계층형 데이터베이스 : 계층형 데이터 베이스는 데이터의 관계를 트리 구조로 정의하고, 부모, 자식 형태를 갖는 구조이다. 풀어서 말하면 상위에 레코드가 복수의 하위 레코드를 갖는 구조이다. 하지만 데이터의 중복이 문제가 생긴다.

네트워크형 데이터베이스 : 네트워크형 데이터베이스는 계층형 데이터의 데이터 중복 문제를 해했고, 레코드간의 다양한 관계를 그물처럼 갖는 구조이다. 하지만 복잡한 구조 때문에 추후에 구조를 변경한다면 많은 어려움이 따른다.

관계형 데이터 베이스 : 관계형 데이터베이스는 우리가 흔히 표현하는 행(Column), 열(Record)로 구성된Table간의 관계를 나타낼때 사용한다. 우리는 이렇게 표현된 데이터를  SQL(Structured Query Language)을 사용하여 데이터 관리 및 접근을 한다.

NoSQL 데이터베이스 : NoSQL 데이터베이스는 관계형 데이터베이스보다 덜 제한적인 일관성 모델을 이용한다. 키(key)와 값(value)형태로 저장되고, 키를 사용해 데이터 관리 및 접근을 한다.


 

2.  데이터 베이스 생성할 때 사용하는 명령어

답 : CREATE

- DDL(CREATE)

- CREATE DATABASE [DB명];


3.  데이터 베이스 정의(어)와 관련 없는 것

답 : (DDL, DML, DCL) (CREATE, ALTER, DROP, TRUNCATE)

DDL;Data Definition Language : 스키마를 정의하거나 조작하기 위해 사용

- CREATE : 정의

- ALTER : 수정

- DROP : 삭제

- TRUNCATE : DROP 후 CREATE

DML;Data Manipulation Language : 데이터를 조작하기 위해 사용

- SELECT : 조회

- INSERT : 추가

- DELETE : 삭제

- UPDATE : 변경

DCL;Data Control Language : 데이터를 제어하기 위해 사용

- COMMIT : 트랜잭션 작업 결과를 반영

- ROLLBACK : 트랜잭션의 작업 취소 및 원상복구

- GRANT : 사용자에게 권한 부여

- REVOKE : 사용자 권한 취소

 

4.  데이터 베이스 용량 산정할 때 고려할 사항이 아닌 것

답: 데이터 건수 및 용량 산정(조사), 헤더 사이즈 평균 길이, 30% 여유공간,

3. 테이블 설계

3.1 데이터 건수 및 용량 산정

 1) 데이터 건수와 길이 산정

 - 테이블 크기를 산정하기 위한 양식을 업무 담당자에게 배포하여 데이터 건수와 산정근거를 조사한다.

업무명 

테이블명 

초기건수 

월발생건수 

보관기간 

 

 

 

 

 

 - 데이터 없이 빈 테이블을 구성하여 SQL문을 통하여 정확한 테이블별 row의 길이를 구할 수 있다.

2) 테이블 총크기 산정

 - 조사된 데이터 건수와 길이를 바탕으로, 계산 공식이 반영된 Excel 양식을 이용하여 자동으로 산정한다.

 - Row 길이에 헤더 사이즈를 감안하여 평균 길이를 구한다.

 - 30% 정도의 여유공간을 감안하여 테이블의 총크기를 구한다.

테이블명 

최종길이 

초기건수 

월발생건수 

보관기간 

총데이터건수 

총크기 

 

 

 

 

 

 

 

 

한 개의 BLOCK에 Available 한 Bytes - 1958

각 initrans 는 23 Bytes

PCT_FREE : Table 의 pctfree 값(default 10)

ADJ_ROW_SIZE : 각 row 의 평균 SIZE 추정치

ROW_COUNT : table 의 row 의 갯수

BLOCK_SIZE : 1 block의 크기 (단위: K)

 

5.  테이블을 생성하거나 삭제하는 명령어는 무엇인가?

답 : (DDL, DML, DCL) (CREATE, ALTER, DROP, TRUNCATE)

CREATE TABLE 문장을 실행하여 테이블을 생성 합니다.


No.032 테이블 삭제

DROP TABLE 문장은 Oracle8 테이블의 정의를 삭제 합니다. 테이블을 삭제할 때 데이터베이스는 테이블에 있

는 모든 자료와 그와 연관된 모든 INDEX를 DROP 하고 사용하고 있던 공간을 돌려줍니다.

- 테이블의 모든 구조와 데이터가 삭제 됩니다.

- DDL 문장이기 떄문에 TRANSACTION 이 COMMIT 됩니다.

- 모든 인덱스가 삭제 됩니다.

- VIEW나 SYNONYM은 남지만 사용시 ERROR가 발생합니다.

- 테이블의 OWNER 나 DROP ANY TABLE 권한을 가진 사용자만이 테이블을 삭제할 수 있습니다.

- Syntax

 DROP TABLE table_name [CASCADE CONSTRAINT] 

- 일단 실행된 DROP TABLE 문장은 복구(ROLLBACK)할 수 없습니다. ORACLE SERVER 은 DROP TABLE 문장을

실행할 때 삭제 여부를 질문하지 않습니다.


No.012 DELETE 문장

- DELETE 문장을 사용하여 테이블로부터 기존의 자료를 삭제할 수 있다.

- WHERE 절을 명시하여 특정 행이나 행들을 삭제할 수 있다.

- WHERE 절을 생략하면 테이블의 모든 행이 삭제 된다.

- Syntax

 DELETE [FROM] table_name

 [WHERE condition];


No.030 TRUNCATE TABLE 문장

- 테이블의 OWNER 이거나 DELETE TABLE 권한을가진 사용자가 테이블의 모든 행을 삭제(구조는 삭제되지 않

는다)하고 사용하고 있던 기억 공간을 모두 해체할 경우에 사용합니다.

- 삭제된 행은 복구(ROLLBACK)할 수 없습니다.

- Syntax

  TRUNCATE TABLE table_name;

- DELETE 문장은 테이블의 모든 행을 삭제할 수 있지만, 저장 공간을 해제할 수 없습니다.



6.  사용권한을 줄 때 사용하는 명령어?

답: GRANT

GRANT


7.  테이블 수정할 때 사용하는 쿼리문

답: ALTER - ADD(열 추가), MODIFY(수정), RENAME(이름 수정), UPDATE(행 수정) 

No.020 테이블을 수정

- 테이블을 생성한 이후에 열을 생략 되었거나, 열 정의를 변경할 필요가있을 수 있다.

- 테이블의 구조를 변경할 경우 ALTER TABLE 명을 사용하여 변경 한다.


No.021 새로운 열 추가

- 새로운 열을 추가 할 수는 있지만 테이블에 있는 기존의 열은 DROP 할 수 없다.

- 열이 위치를 기술할 수 없으며 항상 테이블에서 마지막에 위치 합니다.

- 열을 추가할 때 테이블이 행을 포함하고 있다면 새로운 열은 이미 존재하는 열을 NULL로 초기화 한다.

- Syntax

 ALTER TABLE table_name

 ADD (column datatype [DEFAULT expr ]

 [,column datatype [DEFAULT expr ], , , , , , , , ] 


No.022 열 수정

- ALTER TABLE의 MODIFY 절을 사용하여 열의 정의를 수정할 수 있습니다.

- 열의 수정은 열의 자료형, 크기, DEFAULT VALUE입니다.

- Syntax

 ALTER TABLE table_name

 MODIFY (column datatype [DEFAULT expr ]

 [,column datatype [DEFAULT expr ], , , , , , , , ] 

- 숫자열의 정밀도나 폭을 증가할 수 있다.

- 열이 모두 NULL이거나 테이블에 자료가 없으면 열의 폭을 감소시킬 수 있다.

- 열이 NULL 을 포함하면 열의 자료형을변경할 수 있다.

- 열이 NULL을 포함하거나 크기를 변경하지 않으면 CHAR을 VARCHAR2로 변경하거나 그 반대의 겨우도 가능하다.

- 열의 DEFAULT VALUE를 변경하는 것은 이후의 INSERT 문장에만 영향을 미칩니다.



8.  테이블 구조 확인

답: DESC table_name;

DESC table_name;


9.  다음중 NULL 값에 대한 설명으로 부적절한 것

답: NULL IS 값, 산술X, PK NOT NULL, NULL타입 

No.010 Null 값의 처리

행이 특정 열에 대한 데이터 값이 없다면, 값은 null이 됩니다. null 값은 이용할 수 없거나 지정되지 않았거나, 알 수 없거나 또는 적용할 수 없는 값입니다. null 값은 0 이나 공백과는 다릅니다. 0은 숫자이며 공백은 문자입니다. 열이 NOT NILL 로 정의되지 않았거나, 열이 생성될 때 PRIMARY KEY로 정의되지 않았다면, 어떤 데이터형의 열은 null 값을 포함할 수 있습니다.


No.011 Null에 대하여

- NULL은 이용할 수 없고 할당되지 않고 알려져 있지않고 적용 불가한 값을 의미한다.

- NULL이란 0이나 공백(space)과 다르다.

- NULL 값을 포함한 산술 표현식 결과는 NULL이 된다.

- column에 데이터 값이 없으면 그 값 자체가 널 또는 널 값을 포함하고 있다.

- NULL 값은 1 바이트의 내부 저장


No.012 NVL 함수

- Null값을 어떤 특정한 값(실제 값)으로 변환하는데 사용한다.

- 사용될 수 있는 데이터 타입은 날짜, 문자, 숫자입니다.

- NVL 함수를 사용할 때 전환되는 값의 데이터 타입을 일치 시켜야 한다.



10. 외래키에 대한 설명 중 옳은 것

답: 아래읽어야함

No.012 FOREIGN KEY(FK)

- FOREIGN KEY는 DETAIL 쪽에서 정의한다.

- MASTER TABLE 의 PRIMARY KEY, UNIQUE KEY로 정의된 열을 지정할 수 있으며 열의 값과 일치하거나

NULL 값이어야 한다.

- FOREIGN KEY는 열 또는 열의 집합을 지정할 수 있으며 동일 테이블 또는 다른 테이블간의 관계를 지정할

수 있다.

- ON, DELETE, CASCADE 을 사용하여 DETAIL TABLE 에서 관련된 행을 삭제하고 MASTER TABLE에서 삭제를

허용할 수 있다.

- Syntax

 column datatype [CONSTRAINT constraint_name]

 REFERENCES table_name (column1[,column2, , , ] [ON DELETE CASCADE])

 column datatype,

 , , , , , , , , , , ,

 [CONSTRAINT constraint_name] FOREIGN KEY (column1[,column2, , ,])

 REFERENCES table_name (column1[,column, , , ] [ON DELETE CASCADE]) 


No.013 PRIMARY KEY(PK) 와 FOREIGN KEY(FK)

- FOREIGN KEY 값은 MASTER TABLE 에서 존재하는 값과 일치해야 하거나 NULL 이 되어야 한다.

- FOREIGN KEY 값은 데이터 값을 기초로 하여 순전히 논리적이지 분리적이거나 포인터가 아니다.

- MASTER TABLE(parent)은 참조 당하는 쪽(DEPT TABLE)을 테이블을 의미하고 DETAIL TABLE(child)은 참조하는

쪽(EMP TABLE)의 테이블을 의미한다.

- MASTER TABLE(참조 당하는 쪽)을 먼저 생성하여야 한다.

- MASTER TABLE 에 PRIMARY KEY 또는 UNIQUE KEY로 설정된 열을 DETAIL TABLE 에서 참조하여야 한다.

- MASTER TABLE 과 DETAIL TABLE의 참조하는 열과 참조 당하는 쪽의 자료형과 크기가 일치해야 한다.



 

과목2

1.  오라클 데이터 타입이 아닌것?

답: VARCHAR2, CHAR, NUMBER, DATE, LONG, CLOB, RAW, LONG RAW, BLOB, BFILE

VARCHAR2(n)  : 가변 길이 문자 데이터(1~4000byte)

CHAR(n)         : 고정 길이 문자 데이터(1~2000byte)

NUMBER(p,s)   : 전체 p자리 중 소수점 이하 s자리(p:1~38, s:-84~127)

DATE             : 7byte (BC 4712년 1월 1일부터 AD 9999년 12월 31일)

LONG            : 가변 길이 문자 데이터(1~2Gbyte)

CLOB             : 단일 바이트 가변 길이 문자 데이터(1~4Gbyte)

RAW(n)          : n byte의 원시 이진 데이터(1~2000)

LONG RAW     : 가변 길이 원시 이진 데이터(1~2Gbyte)

BLOB             : 가변 길이 이진 데이터(1~4Gbyte)

BFILE             : 가변 길이 외부 파일에 저장된 이진 데이터(1~4Gbyte)


2.  모든 컬럼열을 검색하는 쿼리문

답: ALL_TAB_COLUMNS;

모든 SYSTEM테이블 정보 : SELECT * FROM ALL_TABLES;

모든 SYSTEM컬럼열 정보 : SELECT * FROM ALL_TAB_COLUMNS;

모든 현재사용자컬럼열 SELECT * FROM COLS;


 

3.  이름이 n문자로 끝나는 것을 검색하는 쿼리문

답: WHERE column LIKE %n

No.008 LIKE 연산자

- 검색 STRING 값에 대한 와일드 카드 검색을 위해서 LIKE 연산자를 사용한다.

- 검색 조건은 LITERAL 문자나 숫자를 포함할 수 있다.

- '%'는 문자가 없거나 하나 이상의 문자를 '_'는 하나의 문자와 대치됩니다.

- 패턴 일치 문자를 조합할 수 있습니다.

- '%' 나 '_'에 대해서 검색하기 위해서는 Escape 식별자를 이용할 수 있습니다.

- WHERE column LIKE ‘%A\_A% ESCAPE’\’;’

(해석 : \문자를 _ 앞에 작성하여 ESCAPE를 활성화하고 _를 문자로 인식하게 만든다.)

- 기본 날짜 형식이 'YY-MM-DD'일 경우는 WHERE hiredate LIKE '82%';로 기술한다.

- SQL> ALTER SESSION SET NLS_DATE_FORMAT = 'YY-MM-DD'; 명령어로 연결되어 있는 SQL*Plus 창

(SESSION)에서 날짜 타입을 바꿀 수 있다.


4.  오라클 논리연산자가 아닌것

답: AND, OR, NOT

논리연산자는 AND, OR, NOT이 있다.


5.  ORDER BY 절에서 낮은 순으로 정렬할 때 쓰는 키워드

답: ASC

오름차순 ASC   저→고 낮은 순서대로

내림차순 DESC 고→저 높은 순서대로


6.  데이터 양이 많을 경우 검색 속도를 향상시키기 위한 것

답: INDEX

INDEX

No.002 인덱스의 특징

- 인덱스는 테이블의 값을 빠르게 액세스 하도록 하는 데이터베이스 객체이다.

- 데이터를 빠르게 찾기 위한 B*TREE을 써서 디스크 입출력 횟수를 줄인다.

- Oracle8 Server가 인덱스를 자동적으로 사용하고 유지 보수 한다.

- 인덱스를 만들면 사용자가 직접 조작할 필요가 없게 된다.

- 인덱스는 논리적으로도 물리적으로도 테이블과는 독립적이다.

- 언제든지 생성하거나 삭제할 수 있으며 이는 테이블이나 다른 인덱스에 영향을 주지 않는다는 의미이다.


7.  오라클 함수중 대소문자를 조작하는 함수가 아닌 것

답: LOWER, UPPER, INITCAP

LOWER : 대소문자가 혼합되어 있거나 대문자인 문자열을 소문자로 변환합니다

UPPER : 대문자가 혼합되어 있거나 소문자인 문자열을 대문자로 변환 합니다.

INITCAP : 각 단어의 첫번째 문자를 대문자로 나머지 문자는 소문자로 변경합니다.



8.  게시판 날짜를 저장할 때 사용하는 오라클 키워드

답: TO_DATE

To_DATE

No.004 특정 날짜 값 삽입

- 형식 DD-MON-YY 는 항상 날짜 값을 입력할 때 사용한다. 이 형식은 현재 세기에 대한 DEFAULT 세기를 다시 호출한다. 또한 날짜가 시간 정보를 포함하므로 DEFAULT 시간은 자정(00:00:00)이다. 날짜를 다른 세기로 입력하거나 또는 특정 시간을 요구 한다면 TO_DATE 함수를 사용하여라.


9.  뷰

답: 아래읽어야함

No.001 VIEW의 개념

테이블이나 다른 VIEW을 기초로 한 논리적인 테이블이고 VIEW는 자체의 데이터는 없지만 테이블의 데이터를

보거나 변경할 수 있는 창과 같다. VIEW은 실제적으로는 질의 문장을 가진다.


No.002 VIEW의 장점

- VIEW은 데이터베이스의 선택적인 내용을 보여줄 수 있기 때문에 데이터베이스에 대한 액세스를 제한한다.

- 복잡한 질의어를 통해 얻을 수 있는 결과를 간단한 질의어를 써서 구할 수 있게 한다.

- 데이터 독립성을 허용한다.

- 동일한 데이터의 다른 VIEW를 나타낸다.

- 조인을 한 것처럼 여러 테이블에 대한 데이터를 VIEW을 통해볼 수 있다.

- 한 개의 VIEW로 여러 테이블에 대한 데이터를 검색할 수 있다.

- 특정 평가기준에 따른 사용자 별로 다른 데이터를 액세스 할 수 있다.


No.003 Simple VIEW와 Complex VIEW

Simple VIEW

 Complex VIEW

- 오직 하나의 테이블에서만 데이터가 유래된다

- 데이터 그룹 또는 함수를 포함하지 않는다.

- VIEW를 통해 DML 수행 가능

- 다중 테이블에서 데이터가 유래된다.

- 데이터 그룹 또는 함수를 포함한다.

- VIEW을 통한 DML을 항상 허용하지 않는다.


No.004 VIEW의 생성

- CREATE VIEW 문장 내에서 SUBQUERY을 내장하여 VIEW를 생성한다.

- SUBQUERY은 복합 SELECT 구문을 포함할 수 있고 ORDER BY 절을 포함할 수 없다.

- Syntax

CREATE [OR REPLACE] [FORCE | NOFORCE] VIEW view_name [(alias[,alias, , , , ])]

 AS Subquery

 [WITH CHECK OPTION [CONSTRAINT constraint ]]

 [WITH READ ONLY]

OR REPLACE                 이미 존재한다면 다시 생성한다.

FORCE Base Table          유무에 관계없이 VIEW을 만든다.

NOFORCE                    기본 테이블이 존재할 경우에만 VIEW를 생성한다.

view_name                   VIEW의 이름

Alias                           Subquery를 통해 선택된 값에 대한 Column명이 된다.

Subquery                     SELECT문장을 기술한다.

WITH CHECK OPTION     VIEW에 의해 액세스 될 수 있는 행만이 입력, 갱신될 수 있다.

Constraint                    CHECK OPTION 제약 조건에 대해 지정된 이름이다.

WITH READ ONLY          이 VIEW에서 DML이 수행될 수 없게 한다.

- VIEW을 정의하는 질의어는 조인, 그룹, Subquery를 포함하는 복잡한 SELECT 문장으로 구성될 수 있다.

- VIEW을 정의하는 질의어에는 ORDER BY절을 쓸 수 없다.

- 제약 조건의 이름을 명시하지 않으면 시스템이 SYS_Cn 형태의 이름을 지정한다.

- VIEW을 삭제하거나 재생성하지 않고 VIEW의 정의를 변경하려면 OR REPLACE 옵션을 쓸 수 있다.


No.005 VIEW의 구조 및 이름 확인

- 일단 VIEW가 생성되면, VIEW의 이름과 VIEW 정의를 보기 위해 USER_VIEWS 라는 데이터 사전 테이블을 질

의할 수 있습니다.

- VIEW을 만드는 SELECT 문장의 텍스트는 LONG 열에 저장됩니다.


No.006 데이터 액세스 VIEW

- VIEW을 사용하여 데이터를 액세스할 때 ORACLE SERVER은 다음 작업을 수행합니다.

- USER_VIEWS 데이터 사전 테이블에서 VIEW 정의를 검색합니다.

- VIEW 기반 테이블에 대한 액세스 권한을 확인합니다.

- VIEW 질의를 기본 테이블 또는 테이블들에서의 동등한 작업으로 전환합니다.


No.007 VIEW의 수정

- OR REPLACE 옵션은 비록 이 이름이 이미 존재할지라도 VIEW가 생성될 수 있도록 해주므로 그 소유자에 대

한 오래된 VIEW 버전업할 수 있다.

- CREATE VIEW 절에서 열 별칭을 지정할 때 별칭은 SUBQUERY 의 열과 동일한 명령으로 나열됨을 명심하십

시오.


No.008 복합 VIEW 생성

- 두 테이블로부터 값을 출력하는 그룹 함수를 포함하는 복잡한 VIEW를 생성합니다.

- VIEW의 어떤 열이 함수나 표현식에서 유래되었다면 별칭은 필수적입니다.


No.009 VIEW에서 DML 연산 수행

- 단순 VIEW에서 DML 연산을 수행할 수 있습니다.

- VIEW가 다음을 포함 한다면 행을 제거할 수 없습니다.

① 그룹 함수 ② GROUP By절 ③ DISTINCT 키워드

- 다음을 포함한다면 VIEW에서 데이터를 수정할 수 없습니다.

① 그룹 함수 ② GROUP BY 절 ③ DISTINCT 키워드 ④ 표현식으로 정의된 열 ⑤ ROWNUM 의사열

- 다음을 포함한다면 VIEW에서 데이터를 추가할 수 없습니다.

① 그룹 함수 ② GROUP BY절 ③ DISTINCT 키워드 ④ 표현식으로 정의된 열 ⑤ ROWNUM의사열

⑥ VIEW에 의해 선택되지 않은 NOT NULL열이 기본 테이블에 있을 경우


No.010 WITH CHECK OPTION 절 사용

- VIEW을 통해 참조 무결성 체크를 수행하는 것이 가능합니다. 또한 데이터베이스 LEVEL 에서 제약 조건을 적

용할 수 있습니다.

- VIEW은 데이터 무결성을 보호하기 위해 사용될 수 있지만, 사용은 매우 제한됩니다.

- VIEW을 통해 수행되는 INSERT와 UPDATE는 WITH CHECK OPTION 절이 있으면 VIEW을 가지고 검색할 수

없는 행 생성을 허용하지 않음을 명시합니다. 그러므로 삽입되거나 갱신되는 데이터에 대해서 무결성 제약 조

건과 데이터 검증 체크를 허용합니다.

- VIEW가 선택하지 않은 행에 대해 DML 작업을 수행하려고 하면, 지정된 제약 조건 명과 함께 에러가 출력됩

니다.


No.011 DML 연산 부정

- WITH READ ONLY 옵션으로 VIEW을 생성하면 VIEW에서 DML 연산을 수행할 수 없습니다.

- VIEW에서 임의의 행에서 DML 연산을 수행하려고 하면 ORACLE SERVER 에러 ORA-01752가 발생합니다.


No.012 VIEW의 제거

- VIEW는 데이터베이스에서 기본 테이블을 기반으로 하기 때문에 테이터 손실 업이 VIEW를 제거할 수 있다.

- Syntax

DROP VIEW view_name; 



10. 프로시져

답: 프로시져

Procedure

CREATE PROCEDURE name

IS

BEGIN

statements;

statements;

[EXCEPTION]

END:

'Legend 개발자 > Oracle' 카테고리의 다른 글

Team Project SQL  (0) 2017.11.07
No.019 PL/SQL 커서 [2017-06-14]  (0) 2017.06.19
No.018 PL/SQL 조건문 [2017-06-14]  (0) 2017.06.19
No.017 PL/SQL 쿼리 [2017-06-14]  (0) 2017.06.19
No.016 PL/SQL 변수 [2017-06-14]  (0) 2017.06.16
Posted by 전설의아이
|