본문 바로가기
반응형

프로그래밍/데이터베이스22

[DB설계] RDB 데이터 무결성과 정합성 내용 정리 데이터 무결성무결성은 데이터 값이 정확한 상태Data Integrity가 주로 데이터 무결성으로 번역되나, 정확하다는 의미에서 데이터 완전성이나 정확성이라는 표현이 더 간결데이터 정합성정합성은 무결성과 유사하게 사용되는 용어어떤 데이터들의 값이 서로 일치할 때 데이터 정합성이 맞다고 표현중복 데이터를 많이 사용하면 데이터끼리 정합성을 맞추기 어렵고 궁극적으로는 서로 달라지는 경우(정합성이 깨지는 경우) 발생 가능비정규형을 사용하여 이상현상이 발생하면 데이터 정합성이 깨진다.무결성과 정합성의 비교정합성은 데이터가 서로 모순 없이 일관되게 일치해야 한다는 의미무결성은 데이터가 정확하고 완전해야 한다는 의미 → 데이터는 제대로된(멀쩡한, 모델러나 개발자가 의도한) 상태로 존재해야 한다.어떤 데이터는 정합성에는.. 2024. 12. 31.
[SQL 기초 - 19장] 오라클 SQL 계층형 쿼리(2), 윈도우 함수 안녕하세요!오늘은 어제 배웠던 계층형 쿼리 연습과 윈도우 함수를 알아보려고 합니다!!​시작하기 전에 지난시간 내용을 복습 하실 분들은 ↓↓↓↓↓↓↓↓↓↓↓↓​오라클 계층형쿼리 알아보기​계층형 쿼리 연습제가 드린 h_sum 테이블 입니다.위의 테이블을 지난 시간에 배웠던 계층형 쿼리를 통해서 ​위와 같은 형식을 만드는 연습을 해보겠습니다.​그럼 시작점을 먼저 찾아줘야 겠죠?시작점은 가장 상위 노드인 지점을 작성해주면 되겠고,연결 부분은 행과 행을 연결해줄 수 있는 컬럼들로 구성하면 되겠네요.​위의 쿼리처럼 작성하시면 됩니다.SELECT 절은 지난 시간에 말씀드린대로그냥 눈으로 보기 좋게 하기 위해 LPAD 를 사용 해준것입니다.​​다음으로 가지치기 라는 개념에 대해서 설명 하려고 합니다. 제가 초반에 한 .. 2024. 12. 30.
[SQL 기초 - 18장] 오라클 SQL 계층형 쿼리 안녕하세요! 오늘은 계층형 서브쿼리를 배워보겠습니다.​그 전에 지난 시간 내용 복습하실 분들은 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓​오라클 rollup, 향상된 groupby 알아보기​WITHWITH 로 시작 하겠습니다.WITH 는 사실상 많이 사용하지는 않습니다.가볍게 개념 설명하고 예시 한 가지 들고 넘어가겠습니다.​쿼리 블럭을 생성하고 같이 실행되는 SQL 에서 해당 쿼리 블럭을 반복적으로 사용할 때성능 향상 효과를 기대할 수 있습니다. WITH 절에 기술된 쿼리 블럭은 메모리에 한번만 올리기 때문에 쿼리에서 반복적으로 사용하더라도 실제 데이터를 가져오는 작업은 한 번만 실행합니다.​하지만, 하나의 쿼리에서 동일한 서브쿼리가 반복적으로 사용 된다는 것은 쿼리를 잘못 작성할 가능성이 높다는 뜻으로,.. 2024. 12. 27.
[SQL 기초 - 17장] 오라클 SQL rollup(2), 확장된 GROUP BY, 서브쿼리 응용 안녕하세요!오늘은 지난시간에 이어서 ROLLUP 과CUBE, GROUPING SETS 에 대해서 알아보려고 합니다.지난 시간 내용이 기억나지 않는분들은 복습을 하고 오시길 바랍니다!rollup, multiple insert 알아보기ROLLUP오늘은 지난 번에 배웠던 ROLLUP 과 GROUPING 함수를 바탕으로문제를 풀어보도록 하겠습니다.​위와 같은 결과를 조회하기 위해서는 어떻게 해야 할까요?지난 번에 봤던 결과와는 조금 다르네요지난번에는 NVL 을 이용해서 위의 '총' 부분을 '총계'로 표현을 했고'소계'와 '계'는 null 이었는데요,오늘은 나머지 null 들을 저렇게 '소계'와 '계'로 바꿔 주셔야 합니다.​네 이렇게 결과를 조회하고 끝났었네요.GROUPING 함수를 보면 조금 감이 오시나요?G.. 2024. 12. 26.
[SQL 기초 - 16장] 오라클 SQL multiple insert, merge, rollup(1) 안녕하세요!오늘은 DML 의 응용에 대해서 배워보겠습니다.insert, merge, group function 에 대해 알아볼거에요.​시작하기 전에 테이블 정보가 없으신 분들은 아래 링크에서 받아주세요!↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓오라클에 데이터넣기​Multiple Insert​우리가 배웠던 INSERT 구문은 한 번에 한 줄의 데이터만 입력하는 방식이었습니다.하지만 오늘 배울 multiple INSERT 구문은 한 번에 여러 줄의 데이터를 입력할 수 있습니다.​multiple INSERT 구문은 총 세가지가 있습니다.1. unconditional INSERT : 조건과 관계없이 하나의 데이터를 여러 테이블에 입력2. conditional all INSERT : 조건을 만족하는 모든 테이블에.. 2024. 12. 23.
[SQL 기초 - 15장] 오라클 SQL 인덱스(2) (feat. 실행계획) 안녕하세요! 오늘은 지난 시간에 이어서 인덱스에 대해서 설명해보려고 합니다.인덱스인덱스의 역할지난번에 제가 인덱스를 설명할 때 '책의 목차와 비슷한 것이다' 라고 설명했던것 같은데요그 말은 인덱스를 사용하면 데이터를 찾을 때 좀 더 빠르게 찾을 수 있다는 것입니다.​우리는 데이터를 찾을 때 테이블을 조회하고 하나씩 찾아봅니다.하지만 그 테이블의 데이터들은 ORDER BY 를 쓰지 않는 이상데이터의 순서가 뒤죽박죽 이겠죠.​따라서 데이터를 조회할 때 빠르게 조회하려면 정렬이 되어 있어야 합니다. 지난 글에서 인덱스의 특징들을 설명을 했었죠?그 중에서 인덱스는 '테이블의 일부 컬럼을 기준으로 데이터를 정렬한 객체'라고 했는데요, 이 특징덕분에 더욱 빠르게 데이터를 찾을 수 있습니다.​​ 그럼 인덱스를 이용해.. 2024. 12. 20.