데이터모델이란? 1. 데이터 모델은 현실 세계의 정보들을 컴퓨터에 표현하기 위해서 단순화, 추상화 하여 체계적으로 표현한 개념적 모형이다. 2. 데이터 모델은 데이터, 데이터의 관계, 데이터의 의미 및 일관성, 제약조건 등을 기술하기 위한 개념적 도구들의 모임이다. 3. 현실 세계를 데이터베이스에 표현하는 중간 과정, 즉 데이터베이스 설계 과정에서 데이터의 구조를 논리적으로 표현하기 위해 사용되는 도구이다. 4. 데이터의 구조(Schema)를 논리적으로 묘사하기 위해 사용되는 지능적 도구이다. 데이터모델의 종류 개념적 데이터 모델 1. 개념적 데이터 모델은 현실 세계에 대한 인간의 이해를 돕기 위해 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정이다. 2. 개념적 데이터 모델은 속성들로 기술된 개..
데이터베이스 언어란? 1. 데이터베이스 언어(Database Language)는 데이터베이스를 구축하고 이용하기 위한 데이터베이스 시스템과의 통신 수단이다. 2. 데이터베이스 언어는 DBMS를 통해 사용되며, 기능과 사용 목적에 따라 데이터 정의 언어, 데이터 조작 언어, 데이터 제어 언어로 구분된다. 데이터 정의 언어(DDL) 1. 데이터 정의 언어(DDL)는 DB구조, 데이터 형식, 접근 방식 등 DB를 구축하거나 수정할 목적으로 사용하는 언어이다. 2. 데이터 정의 언어는 번역한 결과가 데이터 사전(DataDictionary)이라는 특별한 파일에 여러개의 테이블로서 저장된다. 데이터 정의 언어(DDL)의 기능 1. 외부 스키마 명세를 정의한다. 2. 데이터베이스의 논리적, 물리적 구조 및 구조 간의..
스키마란? 1. 스키마는 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술한 메타데이터의 집합이다. 2. 스키마는 데이터베이스를 구성하는 데이터 개체(Entity), 속성(Attribute), 관계(Relationship) 및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 정의한다. 3. 스키마는 사용자의 관점에 따라 외부 스키마, 개념 스키마, 내부 스키마로 나눠진다. 스키마의 특징 1. 스키마는 데이터 사전(Data Dictionary)에 저장되며, 다른 이름으로 메타데이터라고도 한다. 2. 스키마는 현실 세계의 특정한 한 부분의 표현으로서 특정 데이터 모델을 이용해서 만들어진다. 3. 스키마는 시간에 따라 불변인 특성을 갖는다. 4. 스키마는 데이터의 구조적 특성을 ..
DBMS가 필요한 이유 DBMS란? 1. DBMS란 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해 주고 데이터베이스를 관리해 주는 소프트웨어이다. 2. DBMS는 기존의 파일 시스템이 갖는 데이터의 종속성과 중복성의 문제를 해결하기 위해 제안된 시스템으로 모든 응용 프로그램들이 데이터베이스를 공용할 수 있도록 관리해 준다. 3. DBMS는 데이터베이스의 구성, 접근방법 , 유지관리에 대한 모든 책임을 진다. 데이터베이스 데이터구성 데이터베이스를 이용하는 방식에서는 각 업무 처리에 필요한 자료들의 중복을 최소화 하여 한 곳에 모아서 구성한다. DBMS사용시 효과 1. 데이터의 논리적 물리적 독립성이 보장된다. 2. 데이터의 중복을 피할 수 있어 기억공간이 절약된다. 3. 저장된 자료를 ..
데이터베이스의 정의 데이터베이스는 특정 조직의 업무를 수행하는 데 필요한 상호 관련된 데이터들의 모임이다. 1. 통합된 데이터(Integrated Data): 자료의 중복을 배제한 데이터의 모임이다. 2. 저장된 데이터(Stored Data): 컴퓨터가 접근할 수 있는 저장 매체에 저장된 자료이다. 3. 운영 데이터(Operational Data): 조직의 고유한 업무를 수행하는 데 존재 가치가 확실하고 없어서는 안 될 반드시 필요한 자료이다. 4. 공용 데이터(Shared Data): 여러 응용 시스템들이 공동으로 소유하고 유지하는 자료이다. 데이터베이스의 특징 1. 실시간 접근성(Real-Time Accessibility) : 수시적이고 비정형적인 질의(조회)에 대하여 실시간 처리에 의한 응답이 가능..
자료와 정보 자료(Data) : 현실 세계에서 관찰이나 측정을 통해 수집한 단순한 사실이나 결과값으로 가공되지 않은 상태를 말한다. 정보(Information) : 의사 결정에 도움을 줄 수 있는 유용한 형태로, 자료를 가공(처리)해서 얻을 수 있는 결과이다. 정보시스템의 정의 1. 정보시스템이란 조직체에 필요한 Data를 수집, 저장해 두었다가 필요시에 처리해서 의사결정에 유용한 정보를 생성하고 분배하는 수단을 말한다. 2. 정보시스템은 사용하는 목적에 따라 경영 정보 시스템, 군사 정보 시스템, 인사 행정 정보 시스템, 의사 결정 지원 시스템등으로 구분되어 사용된다. 자료 처리 시스템 자료 처리 시스템은 사용할 자료를 처리하는 정보 시스템의 서브 시스템으로, 처리 형태에 따라 세 가지로 분류할 수 있..
이번 포스팅에서는 앞선 두 포스팅에서 배웠던 문자열 합치기 : STUFF, FOR XML PATH 문자열 구분자 추가 : QUOTENAME 기법들을 활용해 동적 피벗테이블을 만들어보도록 하겠습니다. 동적 피벗 테이블 만들기 예제 테이블 DEPT, EMP를 이용해서 연도별(DT) 부서 입사 현황을 조회한다 (회사코드(COMPANY):0327, 사업장코드(BIZAREA):1000 데이터로 한정함) 1. PIVOT을 이용해 년도를 칼럼으로 표시 2. 동적컬럼 생성 시 STUFF, QUOTENAME 함수를 이용하여 입사자가 있는 년도만 표시 결과 화면 예시 동적 피벗 만들기 DECLARE @COL AS NVARCHAR(MAX) --변수선언 DECLARE @QUERY AS NVARCHAR(MAX) --변수에 쿼리..
MSSQL에서 문자열을 합치는 방법은 여러가지가 있습니다. 이번 포스팅에서는 테이블을 Select 해온 결과값을 문자열로 쉽고 간편하게 만들 수 있는 방법을 소개해 드리도록 하겠습니다. STUFF, FOR XML STUFF : 지정된 문자열의 시작위치와 크기를 지정하여 원하는 문자로 치환하는 함수입니다. 사용법 STUFF('[문자열]','[시작위치]','[크기]','[치환문자]') FOR XML : 쿼리의 실행 결과를 XML형식으로 만들어줍니다. 모드 1. RAW : 행 집합의 각 행마다 SELECT문으로 반환되는 단일 행(ROW)를 생성합니다. 2. AUTO : SELECT문의 결과 XML에서 중첩된 구조를 생성합니다. 3. EXPLICIT : XML모양을 자신의 의지대로 특성과 요소를 혼합할 수 있습..
QUOTENAME란? 문자열을 합치다 보면 가끔 문자열 앞에 따옴표 혹은 쉼표를 붙여준다거나 대괄호로 묶어줘야 할 경우가 있습니다. 그럴 때 유용하게 쓰이는 함수가 바로 QUOTENAME이라는 함수인데요 QUOTENAME이라는 함수는 문자열 앞뒤로 구분자를 넣어주는 기능을합니다. 구분자를 입력하지 않았을경우에는 대괄호가 추가되는 함수입니다. 사용법 --문법-- QUOTENAME ( '대상문자열' ,구분자 ) --EX-- PRINT(QUOTENAME ('ABCD')) ==> [ABCD] PRINT(QUOTENAME ('ABCD','''')) ==> 'ABCD' 예제 테이블 EX_TABLE에는 다음과같이 DT칼럼의 데이터 7개가 있다. 이 데이터를 대괄호로 묶어서 한 줄로 출력하시오 DECLARE @COL ..
BETWEEN구문 데이터베이스를 사용하다 보면 ~어디서부터 ~어디까지의 데이터를 출력하고 싶은 경우가 있습니다. 대표적인 경우가 날짜죠 ~일부터 ~일까지의 데이터를 출력해라!! 물론 X보다 크고 Y보다 작은 데이터를 찾아라 이런 식으로도 할 수 있지만 더 간결하고 유용하게 사용할 수 있는 문법인 BETWEEN 절을 소개합니다. 사용법 SELECT * FROM [테이블명] WHERE [칼럼명] BETWEEN [조건1] AND [조건2] 예제 --나이(AGE)가 20살~25살까지의 사원조회 SELECT * FROM MY_TABLE WHERE AGE BETWEEN 20 AND 24 --사원번호(NO_EMP)가 '0000'~'0010'까지이거나 나이(AGE)가 30살~40살인 사원조회 SELECT * FROM ..
IN절 데이터베이스를 사용하다 보면 이런 경험들 있으실 겁니다. XX이거나 XX이거나 XX이거나 XX이거나 이런 경우요 물론 OR을 활용해서 처리를 할 수도 있지만 IN이라는 좀 더 간편한 방식이 있습니다. 사용법 SELECT * FROM [테이블명] WHERE [칼럼명] IN ( [조건1],[조건2],[조건3] ) 예제 --나이가 20살,24살,26살인 사원 조회 SELECT * FROM MY_TABLE WHERE AGE IN(20,24,26) --사원번호가 '0000','0004','0008'이고 나이가 20살 24살 28살인 사원 조회 SELECT * FROM MY_TABLE WHERE NO_EMP IN('0000','0004','0008') AND AGE IN(20,24,28) [MS_SQL] L..
LIKE구문 쿼리문 WHERE절에 주로 사용되며 부분적으로 일치하는 칼럼을 찾을때 사용됩니다. SELECT * FROM [테이블명] WHERE LIKE [조건] _ : 글자숫자를 정해줌(EX 컬럼명 LIKE '홍_동') % : 글자숫자를 정해주지않음(EX 컬럼명 LIKE '홍%') 사용법 --A로 시작하는 문자를 찾기-- SELECT 컬럼명 FROM 테이블 WHERE 컬럼명 LIKE 'A%' --A로 끝나는 문자 찾기-- SELECT 컬럼명 FROM 테이블 WHERE 컬럼명 LIKE '%A' --A를 포함하는 문자 찾기-- SELECT 컬럼명 FROM 테이블 WHERE 컬럼명 LIKE '%A%' --A로 시작하는 두글자 문자 찾기-- SELECT 컬럼명 FROM 테이블 WHERE 컬럼명 LIKE 'A_'..
프로그래밍 언어 중에서 조건에 따라 작업방식을 달리 할 수 있는 조건문이라는 것이 있습니다. 대표적인 문법이 IF문과 CASE문인데요. MSSQL에서도 조건절인 CASE문과 IF문을 지원하니 한번 활용해보시는 것도 좋을 것 같습니다. CASE WHEN 가장 많이 쓰이는 조건문입니다. 조건에 따라 값을 지정해 주는 역할을 합니다. --CASE사용법-- CASE WHEN 조건절 THEN 참일때 값 ELSE 거짓일때 값 END 컬럼명 --테이블(MY_TABLE)에서 성별(GENDER)이 001이면 여, 그게아니면 남자로 검색-- SELECT DISTINCT GENDER, CASE WHEN GENDER = '001' THEN '여' ELSE '남' END AS 성별 FROM MY_TABLE 다중 CASE WHE..