컴퓨터공학 💻
-
MySQL Workbench 설치 방법과 기본 사용법 MySQL Workbench 데이터베이스에는 데이터베이스 클라이언트(Client)와 서버(Server)가 있습니다. 기본적으로 데이터베이스는 클라이언트가 어떤 일을 요청하면 서버가 그에 맞게 응답하는 방식으로 돌아갑니다. 데이터베이스 클라이언트에는 기존 포스팅에서 윈도우 명령프롬프트에서 실행했던 MariaDB Monitor가 그 중 하나이며 GUI(Graphic User Interface)기반의 클라이언트도 존재합니다. 이번에는 GUI기반의 무료로 제공되는 클라이언트 중 하나인 MySQL Workbench를 설치해보겠습니다. 설치 방법 MySQL Workbench 공식 설치 페이지(https://dev.mysql.com/downloads/workben..
[데이터베이스] MySQL Workbench 설치 방법과 기본 사용법MySQL Workbench 설치 방법과 기본 사용법 MySQL Workbench 데이터베이스에는 데이터베이스 클라이언트(Client)와 서버(Server)가 있습니다. 기본적으로 데이터베이스는 클라이언트가 어떤 일을 요청하면 서버가 그에 맞게 응답하는 방식으로 돌아갑니다. 데이터베이스 클라이언트에는 기존 포스팅에서 윈도우 명령프롬프트에서 실행했던 MariaDB Monitor가 그 중 하나이며 GUI(Graphic User Interface)기반의 클라이언트도 존재합니다. 이번에는 GUI기반의 무료로 제공되는 클라이언트 중 하나인 MySQL Workbench를 설치해보겠습니다. 설치 방법 MySQL Workbench 공식 설치 페이지(https://dev.mysql.com/downloads/workben..
2021.07.26 -
MariaDB - JOIN을 통한 관계형 데이터베이스의 필요성 관계형 데이터베이스란 무엇인지 예제를 통해 바로 알아보겠습니다. 먼저 다음과 같이 기업 정보를 입력한 SQL 테이블이 있다고 해보겠습니다. id는 기업의 고유 번호, name은 기업명, description은 기업설명, listed는 창립일, founder는 설립자입니다. 여기서 우리는 founder에 집중해보겠습니다. founder정보를 자세히 들여다보면 yjglab과 powerlab 기업의 설립자가 'james'로 중복되어 있는 것을 볼 수 있습니다. 만약 설립자의 이름이 변경되었다고 해봅시다. 위 표처럼 정보가 2개밖에 없을 때는 그냥 2개 정보를 바꾸면 되지만 james가 설립한 기업이 엄청나게 많을 경우 일일이 모두 바꿔줘야하는 비효..
[데이터베이스] MariaDB - JOIN을 통한 관계형 데이터베이스의 필요성MariaDB - JOIN을 통한 관계형 데이터베이스의 필요성 관계형 데이터베이스란 무엇인지 예제를 통해 바로 알아보겠습니다. 먼저 다음과 같이 기업 정보를 입력한 SQL 테이블이 있다고 해보겠습니다. id는 기업의 고유 번호, name은 기업명, description은 기업설명, listed는 창립일, founder는 설립자입니다. 여기서 우리는 founder에 집중해보겠습니다. founder정보를 자세히 들여다보면 yjglab과 powerlab 기업의 설립자가 'james'로 중복되어 있는 것을 볼 수 있습니다. 만약 설립자의 이름이 변경되었다고 해봅시다. 위 표처럼 정보가 2개밖에 없을 때는 그냥 2개 정보를 바꾸면 되지만 james가 설립한 기업이 엄청나게 많을 경우 일일이 모두 바꿔줘야하는 비효..
2021.07.24 -
이분 매칭 알고리즘 (Bipartite Matching) 두 개의 정점 그룹이 존재할 때 모든 간선(경로)의 용량이 1이면서 양쪽 정점이 서로 다른 그룹에 속하는 그래프를 이분 그래프(Bipartite Graph)라고 말합니다. 이러한 이분 그래프에서 예를 들어, 한쪽 그룹은 X 그룹, 다른 한쪽 그룹은 Y 그룹이라고 할 때 모든 경로의 방향은 X->Y인 그래프의 최대 유량을 구하는 것이 이분 매칭(Bipartite Matching)입니다. 이분 매칭을 통해 구하고자 하는 것은 최대 매칭 수입니다. 매칭을 한다는 것은 어떤 정점이 그것이 가리키는 위치의 다른 정점을 점유한 상태를 말하며 각 정점은 한 개씩만 점유 가능하고 여러개의 정점을 점유할 수 없습니다. 간선의 용량이 1인 것은 바로 이러한 이유에서..
[알고리즘] 이분 매칭 알고리즘 (Bipartite Matching)이분 매칭 알고리즘 (Bipartite Matching) 두 개의 정점 그룹이 존재할 때 모든 간선(경로)의 용량이 1이면서 양쪽 정점이 서로 다른 그룹에 속하는 그래프를 이분 그래프(Bipartite Graph)라고 말합니다. 이러한 이분 그래프에서 예를 들어, 한쪽 그룹은 X 그룹, 다른 한쪽 그룹은 Y 그룹이라고 할 때 모든 경로의 방향은 X->Y인 그래프의 최대 유량을 구하는 것이 이분 매칭(Bipartite Matching)입니다. 이분 매칭을 통해 구하고자 하는 것은 최대 매칭 수입니다. 매칭을 한다는 것은 어떤 정점이 그것이 가리키는 위치의 다른 정점을 점유한 상태를 말하며 각 정점은 한 개씩만 점유 가능하고 여러개의 정점을 점유할 수 없습니다. 간선의 용량이 1인 것은 바로 이러한 이유에서..
2021.07.24 -
MariaDB - 테이블(Table) 생성 쉽고 직관적인 작성을 위해 SQL CHEAT SEAT를 참고합니다. 테이블(Table)은 row(행)과 column(열)으로 이루어져 있습니다. 또한 column에 들어갈 수 있는 데이터의 타입을 명시하고 강제할 수 있습니다. 예를 들어 column 2번 line의 데이터타입이 INT라면 INT외에 다른 데이터 타입은 들어갈 수 없는 것입니다. MariaDB 공식 사이트에 Data Types가 나와있으니 참고 바랍니다. CRUD는 CREATE, READ, UPDATE, DELETE 로써, 데이터베이스의 가장 중요한 4부문입니다. CREATE 테이블은 다음 명령어를 통해 생성이 가능합니다. CREATE TABLE tablename ( /*테이블에 넣을 column..
[데이터베이스] MariaDB - 테이블(Table) 생성, CREATE, READ, UPDATE, DELETEMariaDB - 테이블(Table) 생성 쉽고 직관적인 작성을 위해 SQL CHEAT SEAT를 참고합니다. 테이블(Table)은 row(행)과 column(열)으로 이루어져 있습니다. 또한 column에 들어갈 수 있는 데이터의 타입을 명시하고 강제할 수 있습니다. 예를 들어 column 2번 line의 데이터타입이 INT라면 INT외에 다른 데이터 타입은 들어갈 수 없는 것입니다. MariaDB 공식 사이트에 Data Types가 나와있으니 참고 바랍니다. CRUD는 CREATE, READ, UPDATE, DELETE 로써, 데이터베이스의 가장 중요한 4부문입니다. CREATE 테이블은 다음 명령어를 통해 생성이 가능합니다. CREATE TABLE tablename ( /*테이블에 넣을 column..
2021.07.24 -
네트워크 플로우 (Network Flow) - 에드몬드 카프 알고리즘 (Edmonds-Karp) 네트워크 플로우(Network Flow)는 한 정점에서 다른 정점까지 흐를 수 있는 데이터의 최대 크기가 어느 정도인지를 확인하는 알고리즘입니다. 유향 그래프에서 각 간선은 데이터가 흐를 수 있는 정해진 용량으로 제한되어 있으며 이를 최대한의 양으로 얼마나 흐르게 할 수 있는 지를 확인합니다. 이것을 최대 유량 문제(Max Flow)로 정의하며 해결하기 위한 알고리즘으로 에드몬드 카프 알고리즘(Edmonds-Karp)을 적용합니다. 또한 네트워크 플로우는 도로망의 교통 흐름을 분석하거나 전자 회로의 전류, 배수관을 흐르는 유체, 유량 등을 연구하는데 적용됩니다. 현재 흐르고 있는 데이터의 양을 유량, 간선에 ..
[알고리즘] 네트워크 플로우 (Network Flow) - 에드몬드 카프 알고리즘 (Edmonds-Karp)네트워크 플로우 (Network Flow) - 에드몬드 카프 알고리즘 (Edmonds-Karp) 네트워크 플로우(Network Flow)는 한 정점에서 다른 정점까지 흐를 수 있는 데이터의 최대 크기가 어느 정도인지를 확인하는 알고리즘입니다. 유향 그래프에서 각 간선은 데이터가 흐를 수 있는 정해진 용량으로 제한되어 있으며 이를 최대한의 양으로 얼마나 흐르게 할 수 있는 지를 확인합니다. 이것을 최대 유량 문제(Max Flow)로 정의하며 해결하기 위한 알고리즘으로 에드몬드 카프 알고리즘(Edmonds-Karp)을 적용합니다. 또한 네트워크 플로우는 도로망의 교통 흐름을 분석하거나 전자 회로의 전류, 배수관을 흐르는 유체, 유량 등을 연구하는데 적용됩니다. 현재 흐르고 있는 데이터의 양을 유량, 간선에 ..
2021.07.22 -
MariaDB - 데이터베이스 생성 및 삭제 일종의 표들을 정리정돈하여 그룹핑한 것이 데이터베이스(Database) 입니다. 또다른 말로 스키마(Schema)라고도 하는데 스키마는 표들을 서로 그룹핑할 때 사용하는 폴더라고 보시면 됩니다. 스키마는 서로 연관된 데이터들을 그룹핑합니다. 그리고 스키마가 많아지면 이것들을 저장하는 공간이 바로 데이터베이스 서버입니다. 또한 데이터베이스 관리시스템에는 다중 사용자의 접근이 가능합니다. 따라서 모든 테이블과 스키마에 대해서 CRUD(읽기, 쓰기, 수정, 삭제)가 가능합니다. 당연히 읽기만 가능하게 한다거나 수정만 가능하게 하는 설정도 가능하며 차등적 권한 부여도 가능합니다. 이제 데이터 베이스를 생성해봅시다. CREATE DATABASE mydb; 생성 명령어는..
[데이터베이스] MariaDB - 데이터베이스 생성 및 삭제MariaDB - 데이터베이스 생성 및 삭제 일종의 표들을 정리정돈하여 그룹핑한 것이 데이터베이스(Database) 입니다. 또다른 말로 스키마(Schema)라고도 하는데 스키마는 표들을 서로 그룹핑할 때 사용하는 폴더라고 보시면 됩니다. 스키마는 서로 연관된 데이터들을 그룹핑합니다. 그리고 스키마가 많아지면 이것들을 저장하는 공간이 바로 데이터베이스 서버입니다. 또한 데이터베이스 관리시스템에는 다중 사용자의 접근이 가능합니다. 따라서 모든 테이블과 스키마에 대해서 CRUD(읽기, 쓰기, 수정, 삭제)가 가능합니다. 당연히 읽기만 가능하게 한다거나 수정만 가능하게 하는 설정도 가능하며 차등적 권한 부여도 가능합니다. 이제 데이터 베이스를 생성해봅시다. CREATE DATABASE mydb; 생성 명령어는..
2021.07.22