기존 데이터를 저장할 때는 파일로 저장하여 데이터 공유, 저장, 관리 등이 매우 힘들었다. 특히 데이터를 공유 및 전송 시 유실할 위험이 존재하였다.점차 데이터 용량이 많아지고, 유지보수가 힘들어짐에 따라 이에 대한 요구를 대응하기 위해 데이터베이스를 고안하였다.이러한
2차원 표를 이용하여 데이터를 목록화 및 관리하기 위해 만든 데이터 저장 공간이다.일상생활의 모든 정보들을 관리할 수 있는 혁신적인 저장 공간이자, 직관적이면서도 SQL(구조화 언어)를 이용하여 데이터를 추출할 수 있다는 점에서 체계적이다.집합론에 기반을 둔 일종의 데
좁은 의미로 시스템, application을 구축하기 위해 필요한 물리레벨의 조합을 일컫는다(Server/저장소/네트워크 등).DB설계를 하는 것은 단순히 "DB만"을 설계하는 것이 아니라, 곧 시스템 전체를 어떠한 방식으로 설계할 것인가도 포함이 된다.따라서 DB설계
1. Oracle DB 아키텍쳐 개요 Oracle DB Server를 실행하는 것은 Oracle 인스턴스를 실행하는 과정을 수반하고, 이때 인스턴스는 메모리 구조를 할당받으면서 다양한 파일을 저장한다. 2. Oracle DB Server DB Server는 Dat
기본 테이블에서 필요 및 목적에 따라 생성하는 가상의 table로, 기존 존재하던 table에서 분할해낸 일부로 이해하면 쉽다.View table의 특성은 크게 두가지가 있다.기본 테이블과는 달리 디스크에 공간이 할당되지 않고 Dictionary cache에 해당 SQ
1. 트랜잭션 DB 관리시스템 혹은 이와 유사한 시스템에서 상호작용, 처리 등을 하기 위한 최소 단위이다. 1-1. 트랜잭션의 조건 트랜잭션은 단순히 업무처리의 단위가 아닌, 전체 시스템의 작동방식 및 업무효율을 결정하는 매우 중요한 항목이다. 이러한 트랜잭션이
위 트랜잭션 이슈발생을 방지하기 위해, 상대방 트랜잭션이 데이터를 사용하는지에 대한 여부를 확인하여 알아야 한다.이러한 규칙 및 도구가 락/데드락이며, 데이터 수정 중이라는 사실을 알리는 일종의 잠금장치이다.T1, T2를 각각 진행되는 트랜잭션이라 하고, 해당 트랜잭션
table은 현실세계를 그대로 반영한 저장소로, 관계형 데이터베이스에서 데이터를 관리하고 저장하는 장소이다(=집합의 개념).Data의 효율적인 관리와 적절한 조작이 중요하다.설계 규칙은 정규화 위배사항 분석을 통해 진행하면 되지만, 이를 위해 기본적으로 생각해야할 사항
Entity-Relationship Diagram으로, DB에 구조화된 data를 저장하기 위해 여러 구조 및 제약조건 등을 설계하는 기법을 의미한다.ERD는 ERWin이라는 프로그램 혹은 해당 프로그램을 통해 만들어지는 다이어그램을 의미하는 것이 아니라, DB에 넣을
Write-ahead logging, 말 그대로 log를 선행한다는 의미로 Database의 data 파일을 Databse log record를 사용하여 동기화 및 복구하고, 이때 data 파일은 block화하여 처리한다는 것이다.이때 Redo, undo 정보 모두 l
장애발생을 대비하여, 현재 이용하는 데이터를 다른 곳에 저장하는 행위를 일컫는다. 복구작업 진행 시 백업데이터를 활용하여 진행한다.핫백업온라인 백업, DB 기능을 이용한다.백업대상의 데이터베이스를 정지하지 않고, 가동 상태로 백업 데이터를 얻는다.콜드백업오프라인 백업,
client 요청에 대한 응답시간과 시간 당 처리할 수 있는 처리량을 말한다.client가 application system(WEB/WAS/DB)로 request할때 얼마만큼의 시간이 걸렸는지(Response Time)일정 시간동안 얼마만큼의 트랜잭션을 처리하는지(TP
말 그대로 DBMS에서 많은 수의 부하를 처리하는데, 시간이 오래 걸리는 현상을 의미한다.이러한 병목현상이 발생하는 요인은 여러가지가 존재한다.취급 데이터 양이 많다.시스템에서 처리해야하는 데이터는 연속적으로 보유해야 할 데이터이다.데이터의 총 크기가 지속적으로 증가한
SQL 실행(Operation) 시 두가지 방법이 있는데,인덱스를 활용하여 조회하는 INDEX인덱스를 활용하지 않고 table을 full scan하는 FULL이 중 INDEX 방법은, table 일부 레코드에만 액세스를 하여 탐색하는 기법으로 DB성능이 크게 향상할 수
table 계층구조란, table을 이루는 data들이 계층구조를 이루고 있는 상황을 의미한다.이 계층구조를 처음 접하면 이해하기가 어려운데, 아래와 같은 구조가 있다고 해보자.이때 화살표가 가르키는 방향으로 data의 포함관계(혹은 상하관계)가 구축이 되는 것을 파악
실무에서 "최근 n개월 이내의 가입한 고객의 수"를 구하고자 할 때, 이 변수 n에 따라 Query 결과가 변화하는 Dynamic Query를 통해 구현한다고 해보자.이때 핵심은 Dynamic Query, 즉 Query를 손대지 않고도 n변수를 바꾸었을때 동적으로(자동
Query NULL 처리 함수.특정 COLUMN 값을 조회하였을때, NULL값인 경우에 대해 사용자 지정 변수로 출력하도록 해주는 함수이다.NVL(CSTR_NUM, 0)CSTR_NUM의 COLUMN 값이 NULL일 경우, NULL로 처리하지 말고 0으로 처리하라.NVL
※ 이때 Query 상에서 입력받은 변수를 LIKE(검색)조건 처리할 경우AND TABLE_CONDITION_1 LIKE '%' || :condition1 || '%' AND TABLE_CONDITION_2 LIKE '%' || :condition2 || '%'검
Embeded SQL, 프로그램 runtime 시점에서 함께 실행되는 SQL문으로 실무에서는 DBIO 구조체라고도 한다. SQL query를 구조체로 컴파일하여 사용한다면 Static SQL이다.말 그대로 내장한 SQL이므로 미리 구성한 SQL Query문을 실행하는
데이터 조회, 처리 등과 같은 보편적으로 알려진 단순한 SQL Query를 넘어, 분기처리 및 로그처리, 조건문 기능을 추가하여 마치 C언어와 같은 절차지향적 logic을 가진 SQL문을 일컫는다.단순히 하나의 기능 및 하나의 logic만을 가진 SQL Query를 C
Pl/SQL에서 기능별 항목별로 SQL Query를 분할하고자 할 때, 각각의 기능 및 항목별로 나눈 하나의 작업체계(단위, block)을 프로시저라 일컫는다.우리가 application을 java로 구성할때, 기능별로 클래스를 만들고 이러한 클래스를 통해 필요에 따라
ROWNUM은 쿼리가 담을 최종적인 SELECT LIST의 수를 제한하는 조건이다. 쿼리상 가장 마지막에 실행되어, 말 그대로 최종적인 데이터리스트를 추출할때 해당 ROWNUM수 만큼만 리스트업하여 보여준다.즉 ROWNUM 조건절 이전에 100개의 데이터가 쌓여있다고
두개 이상의 테이블을 서로 연결 및 결합하는 쿼리, 나아가 그러한 작업을 일컫는다.기준이 되는 테이블을 어떻게 위치하고, 이에 따른 결합을 어떻게 할 것인지에 따라 LEFT OUTER JOIN, RIGHT OUTER JOIN으로 분류한다.실제 결합을 할 경우 보통 기준
Query를 하게되면 Oracle server를 실행하게 되고, 이 server는 Query 결과를 인스턴스 내부의 PGA영역에 저장한다.이후 application, 즉 user가 실행하는 프로그램은 실행하기전에 user process를 실행하고 프로그램을 최종적으로
user application의 실행, 다시 말해 사용자 측 query를 실행하여 oracle 서버를 실행한다고 해보자.이때 oracle 서버는 Database뿐만 아니라, application과의 상호작용을 위해 oracle 인스턴스와 서버 프로세스를 실행한다. 이때
SQLStructured Query Language데이터베이스에 접근 및 관리, 가공시 유용한 언어 MySQLOrcale사가 제공하는 데이터베이스 관리시스템(DBMS)SQL Server와 같이 데이테베이스를 관리하기 위한 GUI, 구조적 체계를 제공MySQL을 통한 데
기본적으로 서비스, 쿼리 등을 구성할때는 확장성을 고려해서 구성하도록 한다.■ 단순히 base_date가 아닌 시작날짜, 종료날짜를 이용해서 날짜 INPUT값을 입력■ 이후 추가적으로 입력값을 받는다고 할때 현재의 쿼리 구성을 바꾸지 않고 입력받을 수 있는 방안을 고려
날짜만 바뀌는 data의 경우, 위의 SUBSTR 구문을 이용하여 날짜 부분만 바꾸고 그대로 데이터를 입력할 수 있다.'202210' || SUBSTR(BASE_DATE, 7, 2)VALUES()INSERT 쿼리는 INSERT VALUES와 INSERT SELECT,
재사용할 수 있는 subquery문의 일종으로, 동일한 조건절을 반복적으로 사용할때 활용할 수 있는 키워드이다.위와 같이 EMPNO_TABLE과 EMPL_NAME_TABLE이 union되어있고, EMPNO와 EMPL_NAME을 SELECT하는 query가 있다고 하자.
오류내용 및 로그를 확인하는 것은 Query를 수정하기 위한 가장 기본적인 단계이다.ORA-01789 질의의 결과 열의 수가 틀립니다.UNION or UNION ALL을 할때 합치는 두 테이블의 column 수가 동일하지 않을 경우 발생한다.ORA-01861리터럴이 형
우리가 기존 알고있던 OUTER JOIN의 기본 개념은 table을 column을 통해 연결하고, 연결한 후 SELECT를 통해 data를 추출해내는 것이었다.예를 들어 아래 쿼리와 같이COLUMN끼리 이어주는 것으로 OUTER JOIN을 대부분 사용해왔다.기준 테이블
본 내용은 계속 누적한다.문자열 조건을 LIKE가 아닌 BETWEEN으로 설정Query data를 VB script로 재전송하여 if조건절을 추가하는 등의 가공과정을 최소화한다.프론트에서 가공과정이 늘어나면 프로그램 속도가 매우 느려진다.데이터 및 테이블의 불필요한 메
각 주차별 시작일자, 종료일자는 일자별 계산으로 도출 가능하다.TO_CHAR(TO_DATE(BASE_DATE, 'YYYYMMDD') - (TO_CHAR(TO_DATE(BASTE_DATE, 'YYYYMMDD'), 'D') -2), 'YYYYMMDD') AS STRN_DA
기준일자를 설정한 후, 해당 주의 시작일자와 종료일자를 도출한다.달력표기상 시작일자는 항상 월요일, 종료일자는 항상 일요일로 설정한다.기준일자를 일요일로 설정할 경우, 시작일자는 저번주로 넘어간다.기준일자를 일요일로 설정할 경우, 종료일자는 당일이 된다.※ 기준일자가
문자열 조건 삽입시 반드시 %을 문자열 조건으로 사용하며, =(equal)은 사용하지 않는다.정수조건 삽입시 조회서비스의 신속한 동작을 위해 between을 사용하는 것을 권장한다.
올림 함수.입력 실수값(정수, 소수 모두 포함)을 올림한 정수값을 반환하는 함수이며, 입력값이 정수일 경우 해당 정수값을 그대로 반환한다.input : 5 → output : 5input : 5.1 → output : 6input : 5.6→ output : 6Orca
실무에서 사용하는 Oracle query 문법중 하나인 DECODE는 크게 두가지 목적으로 활용할 수 있다.DECODE의 기본적인 문법으로, CASE WHEN보다는 상대적으로 짧은 길이로 조건문 쿼리를 작성할 수 있다.COLUMN의 결과가 CASE_A일 경우 'A',
1. 수정전 기준일자를 입력하였을때, 해당 기준일자(당월)를 기준으로 한달전 날짜들을 도출하여 일자를 표기한다. 해당 쿼리의 문제점은 예를 들어 9월을 입력하였을 경우, 한달 전인 8월은 31일까지 존재하므로 조건절 상 31번 반복을 시행한다. 일자를 도출하는 조건
Oracle에서 임시적으로 데이터를 추출하기 위한 특정 범위 및 table을 구성하기위한 문법이다.WITH를 사용하는 가장 주된 목적은 가독성이다.SELECT 데이터를 추출해낼때 보통은 하나의 테이블에서 바로 추출할 수 있는 것이 아닌, 수많은 join과 정렬 및 다수
Oracle의 성능을 결정하는 요소 중 하나는 Optimizer의 Explain plan이다. 말 그대로, Oracle 쿼리 결과를 도출하기위해 Optimzier가 쿼리를 실행하고 table에 access하는 과정을 계획하는 과정이다.여기서 중요한 개념이 Cost, C
Oracle 성능에 영향을 미치는, Optimizer가 쿼리결과를 도출하는 실행계획은 크게 두가지 기준에 따라 진행될 수 있다.RBO(Rule Based Optimization)CBO(Cost Based Optimization)Optimizer가 실행계획을 결정하는데
Select 쿼리의 결과를 특정 기준으로 일련번호를 매기고자 할때, 즉 순번을 부여할때 3가지 방법을 사용할 수 있다.이 3가지 방법은 공통적으로 쿼리의 결과를 바탕으로 순번을 부여한다는 점이고 연산의 결과 자체를 바꾸지는 않는다. 다만 OREDER BY와 같은 특정
데이터를 전체조회, 예를 들어 입력값을 공란으로 처리하였을때 모든 데이터를 조회한다고 할때 환경에 따라 쿼리 구성 방법이 달라진다.또한 Where 조건절이 어떻게 반영되는지 어느정도 이해를 하고 있어야, 전체조회를 할 때 어떠한 방식으로 쿼리를 구성해야하는지 윤곽을 정
동일한 기능을 하는 쿼리를 작성하더라도, Oracle이나 ANSI 기반에 따라 쿼리구성방향이 달라진다.그 중 join의 경우 두 쿼리의 구성에서 차이가 나는데, 특히 Oracle의 경우 INNER JOIN이나 OUTER JOIN의 키워드를 사용하지 않고도 WHERE 조
쿼리를 작성하면서 발생하는 "열의 정의가 애매합니다" 오류는 단순히 join 및 해당 table을 표기하지 않은 것 때문에 발생하지는 않는다.join시 오류 원인은 열에 아홉은 가져올 COLUMN의 table을 별도로 표기하지 않았을 때이다.COLUMN_B의 table
데이터가 숫자형, 문자형일때 각각 전체조회 조건을 설정하는 방법이 달라진다.COLUMN이 정수형일때 전체조회조건은 아래와 같다.COLUMN이 문자형일때 전체조회조건은 아래와 같다.
DB index는 말 그대로 DB에서 사용하는 index로, DB내 다양한 table, 그 table 내에서 찾고자하는 특정 COLUMN을 쉽고 빠르게 찾을 수 있도록 설정하는 색인(목차)와 같은 개념이다.우리가 사전에서 단어를 찾을 때 혹은 책에서 특정 주제의 내용을
데이터를 데이터베이스에서 다루기 위해, 해당 데이터의 유형과 제약조건 등을 정의 및 데이터의 조작하는 언어가 존재한다.Data Definition LanguageCREATE, ALTER, DROP, RENAME, TRUNCATE(초기화) 데이터가 들어가기 위해, tab
위와 같은 쿼리를 실행할때FROMWHERE (FROM에서 가져온 결과를 WHERE로 선별)GROUP BY (분류기준)HAVING (분류기준에 대한 조건 함수)SELECTORDER BY (최종적으로 가져온 결과에 대한 정렬)순으로 진행한다.GROUP BY 함수에 대한 집
각 table들을 유일하게 식별할 수 있는 인자는 두가지 종류가 있다.기본키(Primary Key)유일키(Unique Key)이 중 table간 관계에서도 많이 활용하며, data 조작시 가장 중요한 개념인 Primary key와 그 이외 키들에 대해 알아본다.먼저,
보통 data를 insert 및 update하는 상황에서, 기본적으로는 각 속성의 data type에 맞게 입력해주는 것이 필요하다.따라서 data type이 맞지 않다면, TO_NUMBER나 TO_CHAR 등 명시적 형변환을 통해 정확한 data를 입력해주어야 한다.
Oracle에서 시간/분/초를 표현하는 방법을 기억한다(SQL단원에서 시간계산시 일어날 수 있음)위 시간 결과를 비교하면서 시간값을 도출할 수 있다.1/24 : 1시간(24까지 표현되면 시간단위)1.5/24 : 1시간 30분1/24/60 : 1분(60까지 표현되면 그때
MSSQL에서 사용하는 쿼리로 데이터 범위를 제한하여 선별할때 사용하는 구문이다.어떻게 보면 join과 비슷하다고 볼 수 있는데, 데이터의 범위를 제한하는 구문을 지금까지 join에서만 봐왔기에 유용하게 활용할 수 있을 것으로 보인다.메인 쿼리를 실행한 후, 해당 결과
통상 SQL문에서 사용하는 조건절인 WHERE과, JOIN조건에서 사용하는 조건절인 ON은 그 과정과 결과에서 차이점이 존재한다.기본적으로 SQL 진행순서가 FROM - WHERE - IN의 순으로 진행한다는 것을 이해하고 있다면 선별결과를 출력한다는 것을 어렵지않게
1. LEFT OUTER JOIN A를 기준으로 B를 JOIN한다. 기준이 되는 A의 결과값은 모두 나오고, A값에 연결된 B값이 없을 경우엔 NULL로 출력한다. 2. RIGHT OUTER JOIN B를 기준으로 A를 JOIN한다. 기준이 되는 B의 결과값은
비교 연산의 결과가 단 하나의 행만을 반환하는 연산자를 일컫는다.<, >, <=, >=, =비교 연산의 결과가 여러 행을 반환할 수 있는 연산자를 일컫는다.IN, SOME, ANY, EXIST연산의 결과가 여러 컬럼을 반환한다면, 해당 연산자는 다중컬럼 비교
별도의 데이터베이스 객체로, 원천 데이터는 TABLE 안에 있지만 해당 컬럼과 데이터만 저장하여 사용하는 일종의 사용자 정의 오브젝트, 객체이다.독립성테이블 구조를 변경 하더라도, view를 사용하는 application 자체는 변경하지 않아도 된다.편리성join, g
ORDER BY는 SQL문장 맨 끝부분에 위치하여 결과를 최종적으로 정렬하여 나타내어주는 정렬연산자이다.이 ORDER BY의 사용방법은 크게 두가지로 나눌 수 있다.ORDER BY COLUMN(COLUMN을 명시하는 경우)ORDER BY 1, 2(숫자만 명시하는 경우)
SQL을 통해 계층형 구조를 생성한다는 것은 두가지 의미를 가지고 있다.첫번째는 상위(부모)항목에서 하위(자식)항목으로 이어지는 tree 구조의 자료를 만드는 과정이다.두번째는 계층구조보다는 반복문을 만드는데 초점을 두어 관련 쿼리를 생성하는 과정이다(※이 경우도 이론
위와 같은 TABLE과 SQL이 있을때, 결과를 정렬하는 과정을 세부적으로 확인해본다.C2가 NULL인 지점을 최상위 노드로 지정한다.PRIOR C1 = C2, 즉 이전 계층에서의 C1값이 현재 계층의 C2인 값을 지정한다.이때 계층구조가 나뉘고, C1은 현재 자식에게
특정 혹은 여러 개의 COLUMN을 기준으로 집계를 내고자 할때 GROUP BY함수와 집계함수 혹은 count(\*) 등을 활용한다.이 집계함수 대신에 다른 구문을 통해서도 집계를 할 수 있는데, 이때 사용할 수 있는 것이 HAVING 조건절로 COUNT와 CASE 키
SELECT 'X'나 SELECT 1은 조건절을 만족하는 table의 행의 갯수만큼 해당 문자열을 출력하겠다는 의미이다.이 SQL구문은 TABLE의 행개수만큼 'X'가 나온다.이 SQL구문은 TABLE의 행개수만큼 1이 나온다.이 table에 추가하는 조건절에 따라 결
HAVING절은 보통 GROUP BY에서 해당 집계함수에 대한 조건을 추가할때 사용한다.그러나 GROUP BY없이도 단독으로 HAVING절을 사용할 수 있는 경우가 있다.해당 table column 구성에서, 각 column별 소그룹으로 묶지 않고 테이블 전체를 동일한
집계함수라 하면 GROUP BY를 많이 떠올릴 것이다.하지만 SQL에는 GROUP BY 집계함수와 함께, 해당 그룹을 다시 소그룹으로 나누어 세부항목별 집계연산을 지원하는 별도의 집계함수가 존재한다.기본적으로 PRODUCT_ID와 MONTH를 그룹화하여 집계한다.이 집
윈도우 함수(RANK, DENSER_RANK, ROW_NUM) 등과 함께 쓰이며, 순위를 나열할때 그룹내 순위로 나열할 수 있도록 한다.GROUP BY와 의미적으로 유사하다.PARTITION BY에 의해 정해진 그룹내에서만 순위를 나열하고, 그룹이 달라지면 새로운 순위
1. 개요 윈도우 함수는 행과 행간의 비교 및 연산을 할 수 있는 함수이며, 보통은 정렬목적으로 사용한다. ROWNUMBER, RANK, DENSERANK 등 보통 행의 순위와 해당 순위를 통해 출력할 행의 갯수를 제한할때 많이 활용한다. 2. 특징 이 윈도우
1. 개요 SQL을 하다보면 많이 들어봤을 프로시저(Procedure), 트리거(trigger), 사용자 정의 함수(User Defined Function)는 모두 절차형SQL에 속하는 방법론적인 개념들이다. 절차형SQL은 말 그대로 SQL을 절차적으로, SQL의
Optimizer는 SQL을 실행할때 일종의 기준대로 실행을 하며, 이전의 데이터나 기록 등을 이용하면서 최적의 실행방안을 찾기 위해 노력한다.보통은 Optimizer가 최적의 실행 경로를 자동으로 탐색하지만, 사용자가 직접 최적의 실행 방안을 지정해주는 경우가 있다.
트랜잭션의 성질은 data의 무결성(결함이 없는 성질)을 확보하기 위해 필요한 특징이다.Atomicity, 트랜잭션의 각 연산들은 모두 성공한다는 것을 전제하에 처리한다는 의미이다. 연산 중 하나라도 실패한다면 트랜잭션을 처리할 수 없다.Consistency, DBMS
서브쿼리는 동작형식, 변환 데이터 형태, 구문 위치 등에 따라 분류할 수 있다.이 중 동작형식으로 구분한다면 비연관 쿼리, 연관 쿼리로 나눌 수 있다.Un-Corrleated Sub Query, 서브쿼리에서 사용하는 컬럼이 메인쿼리에서 사용하지 않을 경우이다.메인 쿼리
정보 시스템을 구축하기 위한 데이터 관점의 업무 분석 기법현실 세계의 데이터에 대해 약속된 표기법을 통해 표기하는 과정데이터 중복성 최소화데이터 정의와 데이터 사용을 분리하여 유연성 강화데이터 간 상호 연관관계를 명확히 정의하여 일관성 강화외부개념(전사적, 모든 사용자
데이터베이스 성능 향상을 목적으로, 설계단계의 데이터 모델링부터 성능과 관련한 사항이 데이터 모델링에 반영될 수 있도록 하는 것이다.성능을 튜닝하면서 변경될 수 있다.데이터 모델링시 정규화 수행용량과 트랜잭션의 유형에 따라 반정규화 수행데이터베이스 용량산정 수행데이터베
DDL - CREATE, ALTER, DROP, RENAMEDML - SELECT, INSERT, UPDATE, DELETEDCL - GRANT, REVOKETCL - COMMIT, ROLLBACK절차적 데이터 언어는 무슨 데이터를 어떠한 과정으로 접근하는지(WHAT/
1. 순수 관계 연산자 SELECT, PROJECT, JOIN, DIVIDE 2. 쿼리 문제 팁 의미적으로 접근해본다. 보기별로 서로 비교하는 항목이 두개씩 존재하므로, 이 비교항목을 잘 살펴보도록 한다. 3. join 관련 유의사항 엔터티가 3개 있다면 최소
Cost Based Optimizer, CBO, 테이블 및 인덱스 등의 통계정보를 활용하여 SQL문을 실행할때 처리시간, CPU, I/O자원량 등을 계산하여 가장 효율적일 것으로 예상되는 실행계획을 선택하는 옵티마이저액세스 기법조인기법연산최적화 정보동일 SQL이라면 결
IN과 유사한 구문으로, ANY 다음의 비교 대상에 대해 하나라도 만족하거나 참일 경우 해당 값을 출력한다.IN과의 차이점은, IN은 해당 구문만 사용(다른 비교 연산자 등을 사용하지 않음)하고 ANY는 비교 연산자(<, >, =, <=, >= 등)를 사용할
도메인은 속성, attribute에 대한 개념이고, 기본적으로 속성값이 나타날 수 있는 범위라 할 수 있다.나아가 속성에 대한 데이터 타입이나 크기, 제약사항 등에 대한 의미로도 명시될 수 있다.조인시 디스크 I/O가 너무 많고, 경로가 너무 멀어 조인으로 인한 성능저
1. 식별자 특징 엔터티 내 인스턴스들을 구분할 수 있는 구분 인자 유일성 : 인스턴스들을 유일하게 구별할 수 있어야 함 최소성 : 유일성을 만족하면서 최소의 개수여야 함 불변성 : 식별자로 선정된 데이터는 변하면 안됨 존재성 : NOT NULL, 데이터 반드시 존재
. 참고자료 Oracle, SQL Server의 공백처리 - https://ponyozzang.tistory.com/209 natural join 관련 예제 - https://ju-hy.tistory.com/102 partition by 후 특정 기준에 대한 누적값
컬럼단위 분할 : 수직분할튜플단위, 튜플의 속성, 테이블 분할 : 수평분할항상 같이 조회, 하나의 테이블로 통합, ALL IN ONE해서 만드는 SINGLE TYPE 방법개별 테이블 유지, 개별 테이블로 접근이 많은 경우 One to One TYPE슈퍼+서브타입으로 데
여러 장소에 같은 정보를 보관하지 않도록 한다.데이터 모델링을 할때 반정규화는 고려 대상이 아니다. 성능을 위한 반정규화는 모델링 이후의 단계이고, 모델링 단계에서 반정규화는 성능을 해칠 수 있으므로 주의한다.자식 엔티티에서 받은 속성이 반드시 필수가 아니어도 무방한
SAVEPOINT SV1SAVE TRAN(TRANSACTION) SV1Oracle, SQL Server 모두 INSERT INTO EMP(...) VALUES(...) 형태는 동일하고, 이때 SQL Server에서 INTO 생략이 가능하다.TCL(SQL Server)