전체 글 155

SQL - 데이터 적재 및 사용 (소상공인 데이터셋)

공공데이터포털의 상가(상권)정보를 다운로드해 SQL에서 분석한다. 1. 파일 다운로드와 압축 풀기 ZIP 파일 다운로드 공공데이터포털의 상가(상권)정보 페이지에서 ZIP 파일을 다운로드한다. https://www.data.go.kr/data/15083033/fileData.do 소상공인시장진흥공단_상가(상권)정보_20230930 영업 중인 전국 상가업소 데이터를 제공합니다. (상호명, 업종코드, 업종명, 지번주소, 도로명주소, 경도, 위도 등) [데이터 변경 안내] 1. 상권업종분류 : 표준산업분류 기반 업 www.data.go.kr MySQL Workbench MySQL Workbench를 실행시키고 왼쪽 Navigator 패널에 마우스 오른쪽 버튼을 눌러 새로운 Schema를 생성한다. 사용할 Sch..

SQL 2023.10.28

SQL - 문장의 종류

데이터 조작어 Data Manipulation Language (DML) 데이터의 입력/수정/삭제 /조회를 담당합니다. 데이터 조작어에 해당하는 명령어는 위 순서대로 INSERT/UPDATE/DELETE/SELECT로 구성됩니다. 데이터 정의어 Data Definition Language (DDL) 데이터베이스 생성 및 테이블 생성 / 구조 변경/삭제 /이름 변경을 담당합니다. 일단 DML이랑 비교했을 때, 삭제가 겹치죠? 주의해야합니다. 빈출이거든요. 데이터 정의어는 DB를 구현할 때, 가장 먼저 사용하는 언어들입니다. 생성은 CREATE 구조 변경은 ALTER 여기서 삭제는 DROP 이름 변경은 RENAME 입니다. 지금 적고있는 명령어들은 코드를 한번씩 보여드리면서 이해시켜드릴겁니다. 데이터 제어어..

SQL 2023.10.28

SQL - 정규화

정규화 2장에서 가장 어려운 정규화와 반정규화입니다. 이번 글에선 정규화부터 하겠습니다. 정규화는 논리적 데이터모델링에 속하며, Key/속성/관계에 대한 정의를 다루고 재사용성이 높다는 특징을 가진다고 했었습니다. (1과목 10. 데이터 모델링의 특징에서 설명한 부분입니다.) 정규화를 통해 데이터의 입력/수정 등등을 할 때, 데이터들이 꼬이는 것을 막기 위해 분류작업을 하는게 목표입니다. 정규화는 1차부터 5차까지있지만 문제로 자주 나오는건 1~2차까지입니다. (가끔 3차도 나옵니다) 이번 글에서 사용한 사진들은 'SQL전문가 정미나선생님의 유튜브 채널' / 'SQL 자격검정 실전문제' 1차 정규화? 1차 정규화는 모든 속성은 반드시 하나의 값만 가져야한다는 특징을 갖고 있습니다. 쉽게 말해서 '중복되는..

SQL 2023.10.28

SQL - 성능데이터 모델링

성능 데이터모델 분석 및 설계 단계에서부터 성능과 관련한 데이터모델링을 수행하는 것입니다. 정규화, 반정규화, 테이블 분할/병합/추가, 칼럼 추가 , PK/FK 조정, 슈퍼타입/서브타입 조정들의 기능을 합니다. Q. 성능 데이터모델링에 대한 설명으로 부적절한 것은? 1) 성능이 저하된 결과를 대상으로 데이터모델을 겨냥하기보다는 문제발생 시점의 SQL을 중심으로 집중하여 튜닝을 한다. 2) 데이터의 증가가 빠를수록 성능저하에 따른 성능개선비용은 증가한다. 3) 데이터모델은 성능을 튜닝하면서 변경이 될 수 있는 특징이 있다. 4) 분석/설계 단계에서 성능을 고려한 데이터모델링을 수행할 경우 성능 저하에 따른 Rework 비용을 최소화 할 수 있는 기회를 가지게 된다. 답은 1번입니다. 성능 데이터모델링은 '..

SQL 2023.10.28

SQL - 속성

속성 속성 : 업무에서 필요로 하는 인스턴스에서 더 이상 분리되지 않는 최소의 데이터 단위 (빈출 유형) - 한 개의 속성은 반드시 한 개의 속성값만을 가집니다. - 한 개의 엔터티는 최소 2개 이상의 속성을 가집니다. - 한 개의 엔터티는 최소 1개 이상의 다른 엔터티와의 관계를 가집니다. - 한 개의 엔터티는 최소 2개 이상의 인스턴스 집합이어야 한다. 위 4개는 반드시 외워야 합니다. 1문제씩은 나오는듯 합니다. 속성의 종류 기본속성 / 설계속성 / 파생속성 위 3가지 속성에도 키워드가 있습니다. 기본속성 : 업무상 필요한 데이터에 대해 정의 설계속성 : 업무를 규칙화하기 위해 새로 만들거나 변형한 속성 파생속성 : 다른 속성의 영향을 받아 발생. 주로 계산하는 값들이 이에 해당. 핵심키워드는 계산..

SQL 2023.10.28

SQL - 엔터티

Entity (엔터티) 엔터티는 해당 업무에 필요되는 정보이자 관리가 필요한 대상을 말합니다. 예를 들어, 여러분들이 쇼핑몰을 운영하는 운영자라 할 때, 이 업무에서 필요한 정보는 크게 이용자와 제품들일 것입니다. 이렇게 가장 큰 틀의 정보를 엔터티라고 합니다. 그 밖에도 여러 정보와 세부 정보들이 있을텐데 이러한 세부정보들을 엔터티 속성 라고 하며, 이들 사이의 종속관계를 도식화한게 ERD입니다. 그러면 여기서 간단한 문제! S병원은 여러 명의 환자가 존재하고 각 환자에 대한 이름, 주소 등을 관리해야 한다. Q. 여기서 엔터티 역할을 하는 것은? 위에서 말했듯이 가장 큰 틀에 해당하는 정보가 엔터티라 하였으니 환자가 엔터티가 될 것입니다. 환자의 이름, 주소는 속성이 됩니다. 그러면 이 ERD를 작성..

SQL 2023.10.28

SQL - 데이터 모델링의 특징

데이터 모델링의 특징 모델링은 현실세계에 대해 표현한다! 라는 개념이다. 정보시스템 구축을 위한 데이터관점, 프로세스관점의 업무 분석, 데이터베이스 구축을 위한 분석 및 설계하는 과정의 의미입니다. 여기서 Tip. 추상화 / 단순화 / 명확화 이 3단어가 모델링의 특징을 나타냅니다. 그래서 문제를 보면 Q. 이 중 모델링에 대한 설명이 아닌 것을 골라라 1) 현실세계를 일정한 형식에 맞추어 표현하는 추상화의 의미를 가질 수 있음 2) 시스템 구현만을 위해 진행하는 사전단계의 작업으로서 데이터베이스 구축을 위한 사전작업의 의미가 있음 3) 복잡한 현실을 제한된 언어나 표기법을 통해 이해하기 쉽게 하는 단순화의 의미를 가지고 있음. 4) 애매모호함을 배제하고 누구나 이해가 가능하도록 정확하게 현상을 기술하는..

SQL 2023.10.28

SQL - 도입

데이터베이스와 DBMS 컴퓨터에 체계적으로 저장한 데이터를 데이터베이스(Database)라 하며, 데이터베이스를 관리하는 시스템을 DBMS(DataBase Management System)라 한다. 'DBMS'와 '데이터베이스'라는 용어는 크게 구분하지 않고 사용된다. 파일 시스템과 데이터베이스의 비교 파일 시스템은 원시 데이터 파일을 컴퓨터의 하드 디스크 등에 저장하는 시스템이다. 중복 데이터가 많이 발생하고 데이터의 일관성이 떨어지며 보안, 백업·복구가 불편한 문제가 있었다. 데이터베이스는 그러한 파일 시스템의 단점을 보완하고 데이터의 모델링, 무결성, 다수 사용자를 위한 동시성 제어 등을 제공한다. 참고로 이 책에서 다루는 SQLite는 하나의 데이터베이스를 한 개의 파일에 저장하지만, 모든 DBM..

SQL 2023.10.27

자바스크립트 - Ajax

1. Ajax (Asynchronous JavaScript and XML) 브라우저에서 웹페이지를 요청하거나 링크를 클릭하면 화면 갱신이 발생한다. 이것은 브라우저와 서버와의 통신에 의한 것이다. 서버는 요청받은 페이지(HTML)를 반환하는데 이때 HTML에서 로드하는 CSS나 JavaScript 파일들도 같이 반환된다. 클라이언트의 요청에 따라 서버는 정적인 파일을 반환할 수도 있고 서버 사이드 프로그램이 만들어낸 파일이나 데이터를 반환할 수도 있다. 서버로부터 웹페이지가 반환되면 클라이언트(브라우저)는 이를 렌더링하여 화면에 표시한다. Traditional Web Page Lifecycle Ajax(Asynchronous JavaScript and XML)는 자바스크립트를 이용해서 비동기적(Async..

자바스크립트 2023.10.26

자바스크립트 - 비동기식 처리모델

동기식 처리 모델(Synchronous processing model)은 직렬적으로 태스크(task)를 수행한다. 즉, 태스크는 순차적으로 실행되며 어떤 작업이 수행 중이면 다음 작업은 대기하게 된다. 동기식 처리 모델과 비동기식 처리 모델 예를 들어 서버에서 데이터를 가져와서 화면에 표시하는 작업을 수행할 때, 서버에 데이터를 요청하고 데이터가 응답될 때까지 이후 태스크들은 블로킹(blocking, 작업 중단)된다. 동기식 처리 모델(Synchronous processing model) 아래는 동기식으로 동작하는 코드이다. 순차적으로 실행된다. function func1() { console.log('func1'); func2(); } function func2() { console.log('func2..

자바스크립트 2023.10.26