분류 전체보기 477

[MySQL]"DB" 제약 조건, 뷰, 트랜젝션

제약조건, 뷰 제약조건은 열에 넣을 수 있는 값에 대하여 제한하는 것, 테이블의 생성 시에 추가됩니다. 제약조건의 종류로는 NOT NULL, PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK가 있습니다. ​ 1) 체크 제약조건 열에 넣을 수 있는 값을 제한 - Where 절과 같은 조건식을 사용하며 그 형식은 ex) Alter Tale "테이블명" ADD Constraint Check "칼럼" in ('값','값') ​ - 거의 모든 조건을 사용할수 있지만 서브쿼리는 사용할 수 없습니다. - 에러 발생시 데이터 추가 X ​ 2) 뷰 반복되서 사용되는 쿼리를 데이터베이스 안에 저장하여 사용하는 것 - 뷰안에 무엇이 저장되었는지 보기위해서는 테이블 처럼 다루면 된다. - 뷰는 쿼리상에서..

DataBase/Mysql 2021.05.07

[MySQL] "DB" 조인(Join)과 다중 테이블 연산

조인과 다중테이블 연산 ​ 1) 다중 테이블이란 다중 테이블이란 데이터베이스에 테이블이 하나 이상 존재하는걸 말한다. * 다중테이블에서 원하는 데이터들을 모두 얻으려 할 때에는, 조인을 사용하여 테이블을 연결하면 많은 도움이 된다. ​ 2) 카티션 조인 내부 조인의 한 형태, 크로스 조인이라고도 한다. - 한 테이블의 모든 행과 다른 테이블의 모든행을 짝지어 반환한다. - 내부 조인은 쿼리의 조건에 따라 일부 결과 행이 제거된 크로스 조인이다. - 내부조인의 종류로는 동등조인, 비 동등조인, 자연조인이 있다. ​ 3) 동등 조인 같은지를 테스트하는 내부조인 ON 이나 Where절을 이용하여 '=' 연산자를 이용하여 결과 테이블을 도출해 낸다. ​ 4) 비동등 조인 동등조인과 반대로 같지않은 모든 행들을 ..

DataBase/Mysql 2021.05.07

[MySQL] "DB" SQL 이란

SQL SQL은 관계대수와 관계해석을 기반을 집단함수, 그룹화, 갱신 연산등을 추가하여 개발한 언어이다. 1. SQL은 비절차적인 언어 sql은 비절차적인 언어로서 자시니 원하는 데이터만을 명시하고 어떻게(How) 수행할지는 명시할 수 없다. 관계 DBMS는 사용자가 입력한 SQL문을 번역하여 사용자가 요구한 데이터를 찾는데 필요한 모든 과정을 담당한다. SQL문은 자연어에 가까운 구문을 사용하여 질의를 표현할 수 있으며 2가지 인터페이스를 제공한다. 😋 Interface 1) 대화식 SQL : 주로 DBA가 사용하는 것, 뷰와 테이블을 다룬다. ​ 2) 내포된 SQL : 호스트언어에 SQL을 포함하는 것, 호스트언어와 GUI를 이용하여 프로그램을 작성할 수 있게 된다. ​ ​ 2. SQL은 데이터 정의..

DataBase/Mysql 2021.05.07

[MySQL] "DB" 관계대수와 SQL

관계대수와 SQL 1. "관계 해석" 과 "관계 대수" 위 2개는 관계 데이터 모델이 지원되는 2가지 정형적인 언어이다. 1) 관계해석 관계해석은 원하는(What) 데이터만을 명시하고 어떻게 수행할것인가에(How) 대한 명시가 없는 선언적인 언어이다. ​ 2) 관계대수 관계대수는 어떻게 수행할 것인지에 대해 명시가 되어있는 절차적 언어이다. 관계대수는 사용관계 DBMS들에서 널리 사용되는 SQL의 이론적인 기초이다. ​ 2. SQL이란 SQL이란 상용관계 DBMS들의 사실상의 표준 질의어 이다. * 사용자는 SQL을 사용하여 관계 데이터베이스에 다음과 같은 일들을 할 수 있다. ​ 1) DB에 릴레이션 정의 2) 정보 검색 3)관계데이터베이스 갱신(Update) 4) 여러 무결성 제약조건들을 명시 ​ 3..

DataBase/Mysql 2021.05.07

QGIS 지도 데이터 불러오기 (네이버, 다음, 구글, 카카오 지도)

QGIS를 이용해 shp을 열어서 시각화할 수 있지만, 실제 지도와 맞불려서 보야할 필요성을 느꼈다. 그래서 QGIS에서 제공하는 openstreatmap을 이용하려 하였으나 EPSG가 맞지않아 불편함이 생겼다. 해서 플러그인 설치를 통해 한국에서 이용하는 배경지도를 불려오려 한다. 1. 플러그인 설치 1) 플러그인 - 플러그인 설치 2) 설정에서 "실험적인 플러그인도 표시"를 체크 이걸 해야 플러그인 검색했을 때 뜬다고 한다. 3) 모두 - 검색창에 tms 를 검색 tms for Korea설치 4) 실행방법 윕 -> TMS for Korea 원하는 지도 클릭 네이버 maps v3 streatMap 실행 실행 후 레이어의 프로젝트 좌표계를 네이버 지도 좌표계인 5179로 맞춰주면 위와같이 나온다! + 라..

QGIS(지리정보) 2021.05.07

QGIS shp 파일 좌표계 변환, Gson 데이터 변환(직렬화)

도로명 주소 전자지도 데이터를 다운받으면, 해당 지역의 많은 shp파일을 확보할 수 있다. 이 데이터를 활용하기 위해서는 좌표계를 GRS80 UTM-K기준 좌표계에서 WGS 84 / Pseudo-Mercator(EPSG:3857)로 바꿔줘야 한다. 그 후에 이 데이터를 사용하기 위해서 찾아보니 GSON 파일 형식으로 바꿔줘야한다는걸 알았다. 1. QGIS 실행 QGIS destop 버전을 실행하고 프로젝트>새로 생성(Ctrl+N)을 통해서 새로운 프로젝트를 생성하며 탐색기의 XYZ Tiles>OpenStreetMap을 실행해서 지도를 켠다. (없을 시 플러그인 관리 및 설치를 통해 OpenLayer Plugin을 설치한다.) 그 후에 다운받은 shp 파일을 중 원하는 파일을 드레그 해주어 레이어파일에 추..

QGIS(지리정보) 2021.05.05

[JAVA] 우선순위 큐(priorityQueue)

1. 우선순위큐 -PriorityQueue는 먼저 들어온 순서대로 데이터가 나가는 것이 아닌 우선순위를 먼저 결정하고 그 우선순위가 높은 엘리먼트가 먼저 나가는 자료구조입니다. ​ -우선순위 큐는 힙을 이용하여 구현하는 것이 일반적입니다. ​ -데이터를 삽입할 때 우선순위를 기준으로 최대힙 혹은 최소 힙을 구성하고 데이터를 꺼낼 때 루트 노드를 얻어낸 뒤 루트 노드를 삭제할 때는 빈 루트 노드 위치에 맨 마지막 노드를 삽입한 후 아래로 내려가면서 적절한 자리를 찾아서 옮기는 방식으로 진행됩니다. ​ 2. Priority Queue의 특징 1) 높은 우선순위의 요소를 먼저 꺼내서 처리하는 구조 (큐에 들어가는 원소는 비교가 가능한 기준이 있어야함) 2) 내부 요소는 힙으로 구성되어 이진트리 구조로 이루어져..

Java/Java 문법 2021.04.28

[java] 플로이드-워셜 알고리즘 (Floyd-Warshall Algorithm)

1. 플로이드 워셜 알고리즘이란, 그래프에서 가능한 모든 노드 쌍에 대한 최단 거리를 구하는 알고리즘입니다. ​ * 다익스트라 알고리즘은, 하나의 정점에서 다른 모든 정점까지의 최단 거리를 구하는 알고리즘이고, * 플로이드-워셜 알고리즘은, 한 번 실행하여 모든 노드​ 간의 최단 거리를 구하는 알고리즘입니다. ​ * 플로이드 워셜 알고리즘은, 다익스트라 알고리즘과 다르게 음의 간선도 사용할 수 있다. 2. 과정 ​ * 플로이드 워셜 알고리즘은 모든 노드간의 경로를 구하기때문에 2차원 배열이 필요합니다. ​ 초기 행렬 ​ * 노드의 개수만큼 라운드를 반복하여 각각의 해당 하는 노드를 중간 노드로 설정합니다. ​ 예를 들어, 1) 1번 라운드에는, 1번 노드가 중간노드가 되어 가능한 모든 경로를 갱신합니다...

Java/Java 문법 2021.04.28

[java] 선택정렬 (Select Sort)

1. 선택정렬이란 - 선택정렬이란, 초기상태의 배열(정렬되지 않은 상태)에서 우선순위가 가장 높은 요소를 선택해 배열의 맨 앞으로 이동시키는 정렬 방법이다. ​ 예시) ​ 2. 시간복잡도 선택정렬의 장점 1.구현이 간단하고 2. 두 개의 반복문을 사용하여 비교 횟수가 정해져잇다. ​ 단점 1. 반복문이 돌기 전에 정렬이 끝나도, 배열의 끝 요소까지 비교를 체크한다. ​ 따라서 선택정렬의 시간복잡도는 O(n2)로 매우 느리다. 선택 정렬 구현 방법 ex) int arr[] = {1, 3, 5, 4, 2 }; for(int i=0;i

Java/Java 문법 2021.04.28

[java] 객체 정렬 Comparable과 Comparator

* C++ 에서 Pair가 있지만, 자바에서는 클래스를 정의해 주어야한다. ​ 1. Comparable 인터페이스 - 자바에서 객체를 정렬하는데 사용되는 메소드인 compareTo() 메소드를 정의하고있는 인터페이스​이다. - 자바에서 같은 타입의 인스턴스를 서로 비교햐야만 하는 클래스들은 모두 Comparable 인텊페이스를 구현하고 있다. - 따라서 Boolean을 제외한 래퍼 클래스나 String, Time, Date와 같은 클래스의 인스턴스느 모두 정렬이 가능하다. - 기본 정렬 순서는 "오름차순"이다. class Car implements Comparable { private String modelName; private int modelYear; private S..

Java/Java 문법 2021.04.28