
자격증 추천: SQLD, ADSP, 빅분기
| 구분 | 정량적 데이터(Quantitative) | 정성적 데이터(Qualitative) |
|---|---|---|
| 유형 | 정형 데이터, 반정형 데이터 | 비정형 데이터 |
| 특징 및 관점 | 여러 요소의 결합으로 의미 부여 주로 객관적 내용 | 객체 하나가 함축적 의미 내포 주로 주관적 내용 |
| 구성 및 형태 | 수치나 기호 스프레드시트, 데이터베이스 | 문자나 언어 웹로그, 텍스트 파일 |
| 위치 | DBMS, 로컬 시스템 등 내부 | 웹사이트, 모바일 플랫폼 등 외부 |
| 분석 | 통계 분석 시 용이 | 통계 분석 시 어려울 수 있음 |

기존 데이터베이스 관리도구의 능력을 넘어서는 대량(수십 테라바이트)의 정형 또는 비정형 데이터 집합을 포함한 데이터로부터 가치를 추출하고 결과를 분석하는 기술
3V: 양(Volume), 데이터 생성 속도(Velocity), 형태의 다양성(Variety)

| 분야 | 명칭 | URL | 비고 |
|---|---|---|---|
| 전체 | 공공 데이터 포털 | https://www.data.go.kr | |
| 전체 | 서울시 열린데이터 광장 | https://data.seoul.go.kr | |
| 행정 | 지방행정데이터 | http://localdata.kr | |
| 지도 | 국가 공간정보 포털 | http://nsdi.go.kr | |
| 건축 | 건축데이터 민간 개방 시스템 | http://open.eais.go.kr | |
| 기상 | 기상자료 개방 포털 | https://data.kma.go.kr | |
| 관광 | Tour API | http://api.visitkorea.or.kr | |
| 농림 | 농림축산부 | http://www.mafra.go.kr/mafra/322/subview.do | |
| 금융 | 금융 빅데이터 개방 시스템 | https://credb.kcredit.or.kr:3446/frt/login/idSearch.do | |
| 치안 | 경찰청 공공 데이터 개방 | https://www.police.go.kr/www/open/publice/publice01.jsp | |
| 문화 | 문화 데이터 광장 | https://www.culture.go.kr/data | |
| 복지 | 보건 복지 데이터 포털 | https://data.kihasa.re.kr | |
| 교통 | 교통 사고 분석 시스템 | http://taas.koroad.or.kr | |
| 전기 | 전력데이터 개방 포털 시스템 | https://bigdata.kepco.co.kr | |
| 기타 | 데이터 스토어 | https://www.datastore.or.kr | 데이터 거래 |
특정 조직의 여러 사용자가 공유하여 사용할 수 있도록 통합해서 저장한 운영 데이터 집합
조직 운영에 필요한 데이터를 수집하여 저장했다가 의사 결정이 필요할 때 유용한 정보를 만들어주는 수단
핵심 역할을 데이터베이스가 수행
| 구분 | 영문 | 설명 |
|---|---|---|
| 통합 데이터 | integrated data | 최소의 중복과 통제 가능한 중복만 허용하는 데이터 |
| 저장 데이터 | stored data | 컴퓨터가 접근할 수 있는 매체에 저장된 데이터 |
| 공유 데이터 | shared data | 특정 조직의 여러 사용자가 함께 소유하고 이용할 수 있는 공용 데이터 |
| 운영 데이터 | operational data | 조직의 주요 기능을 수행하기 위해 지속적으로 꼭 필요한 데이터 |
| 구분 | 영문 | 설명 |
|---|---|---|
| 실시간 접근 | real-time accessibility | 사용자의 데이터 요구에 실시간으로 응답 |
| 계속 변화 | continuous evolution | 데이터의 계속적인 삽입, 삭제, 수정을 통해 현재의 정확한 데이터를 유지 |
| 내용 기반 참조 | contents reference | 데이터가 저장된 주소나 위치가 아닌 내용으로 참조 예) 재고량이 1,000개 이상인 제품의 이름을 검색 |
| 동시 공유 | concurrent sharing | 서로 다른 데이터의 동시 사용뿐만 아니라 같은 데이터의 동시 사용도 지원 |
| 종류 | 목적 및 사용처 | DBMS |
|---|---|---|
| RDB | 가장 일반적인 테이블 형태. 엑셀의 시트와 같이 행과 열로 이루어져 있어 정형 데이터에 적합. 모든 산업군에서 널리 사용 | Oracle, MySQL, MariaDB, MS-SQL, PostgreSQL, Tibero 등 |
| NoSQL | 기존 RDB의 단점을 보완해 응답 속도나 처리 효율↑. Key-Value, Wide Column, Document, Graph 형태. 인스타그램, 넷플릭스 등의 SNS, OTT 산업군에 사용 | MongoDB, Hbase, Cassandra, Redis, Neo4J 등 |
| RTDB | 산업 현장의 센서에서 발생되는 방대한 데이터를 초고속으로 처리하기 위해 개발. 시계열 트렌드를 실시간으로 모니터링O 발전사, 정유사, 철강사 등 장치 산업군에 사용. | OSI PI System, dataPARC, Honeywell PHD, GE Historian 등 |
| DBMS | 제작사 | 작동 운영체제 | 기타 |
|---|---|---|---|
| MySQL | Oracle | Unix, Linux, Windows, Mac | 오픈 소스(무료), 상용, 대규모용 기능은 부족 |
| MariaDB | MariaDB | Unix, Linux, Windows | 오픈 소스(무료), MySQL 초기 개발자들이 독립해서 만듦, 동시접속 트랜젝션엔 부적합 |
| PostgreSQL | PostgreSQL | Unix, Linux, Windows, Mac | 오픈 소스(무료) |
| Oracle | Oracle | Unix, Linux, Windows | 상용 시장 점유율 1위, 자격증 비쌈 |
| SQL Server | Microsoft | Windows | 주로 중/대형급 시장에서 사용, 윈도우 기반 강력 |
| DB2 | IBM | Unix, Linux, Windows | 메인프레임 시장 점유율 1위 |
| Access | Microsoft | Windows | PC용 |
| SQLite | SQLite | Android, iOS | 모바일 전용, 오픈 소스(무료) |
데이터베이스 내의 정보를 구성하는 컴퓨터 프로그램의 집합. 자료의 중복성 제거. 무결성, 일관성, 유용성 보장을 위해 자료를 제거하고 관리하는 소프트웨어 체계


| 기능 분류 | 설명 |
|---|---|
| 정의 기능 | 데이터베이스 구조를 정의하거나 수정할 수 있음 |
| 조작 기능 | 데이터를 삽입·삭제·수정·검색하는 연산을 할 수 있음 |
| 제어 기능 | 데이터를 항상 정확하고 안전하게 유지할 수 있음 |
RDB에서 원하는 데이터를 불러오거나 수정하는데 사용되는 언어

데이터베이스에서 데이터를 검색, 조작하기 위한 SQL 명령
SELECT INSERT UPDATE DELETEWHERE ORDER BY GROUP BY HAVINGJOINCOUNT SUM AVG MIN MAX 집계 함수, 문자열 함수, 날짜 함수| DBMS | 자동 증가 구현 방식 |
|---|---|
| PostgreSQL | SERIAL, BIGSERIAL |
| MySQL | AUTO_INCREMENT |
| Oracle | 자동 증가를 위한 고유 데이터 타입이나 속성 없음 |
| SQL Server | IDENTITY |
https://www.enterprisedb.com/downloads/postgres-postgresql-downloads
16.11 사용

어드민 비번 설정할 때 @를 넣으면, python에서 접속할 때 오류가 발생할 수 있으므로 자제하자.
5432 기본. 혹시 겹치면 다른걸 쓰자

클라이언트 툴 중 하나
80여개의 DBMS에대한 접속과 관리를 지원




Test connection 하기



서비스 확인


















Null


_가 붙은 데이터형은 리스트를 뜻한다| 이름 | 설명 | 예시 |
|---|---|---|
| INTEGER (또는 INT) | 4바이트 정수. 가장 일반적으로 사용되는 정수형. | 123456789 |
| SMALLINT | 2바이트 정수. 작은 범위의 정수 값에 적합. | 32767 |
| BIGINT | 8바이트 정수. 매우 큰 정수 값에 사용. | 987654321012345 |
| NUMERIC (또는 DECIMAL) | 정확한 소수점 처리가 필요한 금융 계산 등에 사용. | 1234.56 |
| REAL | 4바이트 단정밀도 부동 소수점. 근사치 값 저장. | 3.14159 |
| DOUBLE PRECISION | 8바이트 배정밀도 부동 소수점. REAL보다 더 정밀한 값 저장. | 1234.56789 |
| 이름 | 설명 | 예시 |
|---|---|---|
| DATE | 날짜만 저장. | '2025-10-14' |
| TIME | 시간만 저장. | '16:03:54' |
| TIMESTAMP | 날짜와 시간을 함께 저장. | '2025-10-14 16:03:54' |
| TIMESTAMPTZ | 날짜, 시간과 타임존을 함께 저장. | '2025-10-14 16:03:54+09' |
| 이름 | 설명 | 예시 |
|---|---|---|
| VARCHAR(n) | 가변 길이 문자열. 최대 길이 n을 지정해야 함. | 'Hello World' |
| TEXT | 가변 길이 문자열. 최대 길이 제한이 없으므로 긴 텍스트에 적합. | 'This is a very long text.' |
| CHAR(n) | 고정 길이 문자열. 지정된 길이보다 짧은 문자열을 저장하면 공백으로 채워짐. | 'A' |
데이터베이스의 필수적인 기능 요소로 데이터가 저장, 처리, 전송되는 모든 과정에서 변경되거나 손상되지 않고, 정확성과 일관성을 유지함을 보증하는 특성
Default: 제약조건이 아닌 옵션 중 하나. Date값에서 now 함수를 부르게한다던지












→ PK 제약 위반(Unique)

→ char(2)인데 char(3)값을 넣어 값 자료형 위반

→ FK 위반(해당하는 PK 없음)

https://github.com/jiminxchris/dataproject

CREATE TABLE IF NOT EXISTS practice.product_info (
serial_no char(8) PRIMARY KEY ,
model_id char(2) NOT NULL,
line_id char(1) NOT NULL,
prod_start_date date NOT NULL,
target_weight int NOT NULL,
process_step1 smallint,
process_step2 smallint,
factory_code char(1) NOT NULL
);
CREATE TABLE IF NOT EXISTS practice.delivery_log (
serial_no CHAR(8),
invoice_no CHAR(7) NOT NULL,
client_name varchar(20) NOT NULL,
due_date date NOT NULL,
shipped_date date NOT NULL,
destination varchar(10) NOT NULL,
FOREIGN KEY (serial_no) REFERENCES practice.product_info(serial_no)
);
CREATE TABLE IF NOT EXISTS practice.factory_data (
line_id char(1) NOT NULL,
check_date date NOT NULL,
temp int NOT NULL,
humid int NOT NULL,
op_hours int NOT NULL,
voltage int NOT null
);
CREATE TABLE IF NOT EXISTS practice.master_code(
column_nm varchar(15),
type varchar(10),
code varchar(10),
code_desc varchar(20)
);
CREATE TABLE IF NOT EXISTS practice.qa_result(
serial_no char(8) NOT NULL,
qa_date date NOT NULL,
net_weight int NOT NULL,
defect_yn char(2) NOT NULL,
grade_level int NOT NULL,
qa_status char(1) NOT NULL,
FOREIGN KEY (serial_no) REFERENCES practice.product_info(serial_no)
);
CREATE TABLE IF NOT EXISTS practice.sensor_log(
serial_no char(8) NOT NULL,
log_date date NOT NULL,
current_weight int NOT NULL,
cpu_temp numeric(3, 1) NOT NULL,
fan_rpm int NOT NULL,
power_usage int NOT NULL,
error_yn char(1) NOT NULL,
remarks text,
FOREIGN KEY (serial_no) REFERENCES practice.product_info(serial_no)
);
CREATE TABLE IF NOT EXISTS practice.unit(
column_nm varchar(15),
unit varchar(10)
);
COMMENT ON COLUMN [스키마].[테이블].[칼럼] IS '설명';