'JAVA 계열/자바 & 안드로이드 교육'에 해당되는 글 83건

  1. 2015.08.28 8월 4주차 5일 (8주)
  2. 2015.08.27 8월 4주차 4일 (8주)
  3. 2015.08.26 8월 4주차 3일 (8주)
  4. 2015.08.25 8월 4주차 2일 (8주)
  5. 2015.08.24 8월 4주차 1일 (8주)
  6. 2015.08.18 8월 3주차 1일 (7주)
  7. 2015.08.18 8월 3주차 2일 (7주)
  8. 2015.08.13 8월 2주차 4일 (6주)
  9. 2015.08.12 8월 2주차 3일 (6주)
  10. 2015.08.11 8월 2주차 2일 (6주)

join, subQuery 과제


DML (Data Manipulation Language : 데이터 조작어)


- INSERT

INSERT INTO 테이블명(컬럼명1, 컬럼명2)

VALUES (값1, 값2);

모든 컬럼에 값 입력 시 생략가능

원하는 컬럼만 입력한 경우(Null을 허용하는 컬럼을 생략하고자 할 경우) - 묵시적 입력


- CARETE

테이블 생성


- UPDATE

UPDATA 테이블명

SET 컬럼1 = 값1, 컬럼2 = 값2

WHERE 조건


- DELETE

삭제


- TCL (Transaction Control Language (트랜잭션 관리 언어)

데이터베이스에서 데이터를 처리하는 하나의 논리적 작업 단위이다.

단순히 하나의 INSERT 하나도 트랜잭션이다.

일련의 물리적 DML 묶음

ALL or noting <-- 전체적으로 모두 처리되던가 안되던가 이다. 부분적으로 처리되고 그런게아니다.


이 일련의 작업들은 메모리상에서만 일어나며 COMMIT 명령어나 ROLLBACK명령어를 실행해야 반영된다.

(조작이 들어가는 순간부터 트랜잭션이 시작된다.)


트랜잭션 종료시

   - COMMIT이나 ROLLBACK 명령어 실행

   - DBMS 클라이언트 정상 종료 시 Auto Commit

   - DBMS 장애 시 Auto Rollback

   - DDL이나 DCL 문장의 경우 Auto Commit


DML만이 commit과 rollback이 유효하다.


SavePoint로 중간지점에서 커밋이 가능하다.


SavePoint rollback으로 원하는 지점까지 지정할수 있다.


스키마 - 데이터베이스 객체를 저장하는 객체


Constraint 제약조건 추가키워드 -> 데이터 무결성 제약조건

테이블의 컬럼에 유효하지 않은 데이터가 입력되는 것을 방지하기 위한 여러가지 규칙이 간단하게 테이블안에 데이터의 성격을 정의하는 것이 바로 데이터 무결성 제약조건 이다.


모든 제약사항은 딕셔너리 테이블(시스템 테이블)에 자동 저장된다.


시스템 테이블은 user_XXXXs 라고 붙는다.

다양한 사용자가 만든 데이버 베이스 객체를 다룬다.


- 테이블 칼럼 관리


- ADD

테이블에 새로운 칼럼을 추가

무조건 맨 뒤에 추가된다. 그래서 위치를 잡기 위해서 DROP하고 다시만든다. 


- MODIFY

칼럼을 수정하더나 NOT NULL로 변경

20 -> 50 은 가능하나 50 -> 20으로는 불가능

늘리는것만 가능

입력이 되어있는경우 변경이 불가능


- DROP

칼럼을 삭제

제약사항과 칼럼을 지정하기에 따라 삭제할수 있다.


- 데이터 베이스 객체


- SEQUENCE(자동번호 생성기)

고유한 번호를 자동 생성해주는 궁유 가능한 오라클 객체

주로 PRIMARY KEY와 같이 유일하면서 순차적으로 증가하는 칼럼값을 자동적으로 생성하는데 사용


테이블명_칼럼명_SEQ


뷰를 만들때 FROM절에서 서브쿼리로 테이블 값을 가져올때 이름을 - 인라인뷰 라고 한다.













'JAVA 계열 > 자바 & 안드로이드 교육' 카테고리의 다른 글

9월 1주차 2일 (9주)  (0) 2015.09.02
9월 1주차 1일 (9주)  (0) 2015.08.31
8월 4주차 4일 (8주)  (0) 2015.08.27
8월 4주차 3일 (8주)  (0) 2015.08.26
8월 4주차 2일 (8주)  (0) 2015.08.25
Posted by moyaiori
,

오라클 함수 활용 및 과제


1. 급여가 5000이상 15000이하 사이에 포함되지 않는 사원의 사원번호(employee_id), 이름(last_name), 급여(salary), 입사일자(hire_date)를 조회하라.


2. 부서번호(department_id)가 50이고, 업무(job_id)가 'ST_MAN'이고, 

   입사일이 2004년 7월 18일인 사원의 사원번호, 이름, 업무, 입사일을 조회하라.


3. 2002년 이후 입사자중에서 재고업무(ST_MAN, ST_CLERK)를 담당하는 사원들의 모든 정보(컬럼)를 조회하라.


4. 상사(manager_id)가 없는 사원의 모든 정보(컬럼)을 조회하라.


5. 급여가 10000 미만인 사원중에서 배송(SH_CLERK)이나 구매(PU_MAN, PU_CLERK)업무를 담당하는 사원들의 모든 정보를 조회하라.


6. 사원중 이름(first_name)에 'S'가 포함된 사원의 모든 정보를 출력하라.


7. 년도별 입사인원수를 조회하라.


8. 사원번호(employee_id)가 홀수인 사원의 모든 정보를 조회하라.


9.오늘부터 6개월 후 돌아오는 첫번째 금요일 날짜를 출력하라.

   (날짜 형식 예: 2002-06-05 15:23:10)


10.사원번호(employee_id), 사원명(first_name), 상사번호(manager_id)를 출력하되

   상사번호가 없는(NULL) 경우 상사번호를 '대빵'이라 출력하라.


11.사원들을 3개축구팀으로 분류하기 위해 사번을 3으로 나누어

   나머지가 0이면 "영화배우팀"

   나머지가 1이면 "개그맨팀"

   나머지가 2이면 "가수팀"으로 분류하여 팀이름, 사원번호, 사원명을 출력하라.


12.사원별 급여그래프를 아래와 같이 출력하라.

   Steven King     *****($5,000) // $1000달러당 별 1개추가.

   Neena Kochhar  ***($3,000)--    .........

   XXXX XXXXX    *****************($17,000)


13.2002년 3월부터 2003년 2월 기간 동안 입사한 사원을 대상으로 부서별 인원수를 조회하라.

   결과는 인원수가 많은 순서대로 정렬하여 조회


14.업무별 평균 급여를 계산하라. 단, 평균급여가 10000을 초과하는 경우는 제외하고 평균 급여에 대해 내림차순 정렬한다.


15.2002년에 입사한 사원들의 목록으로부터 분기별 입사자의 수를 조회하라.

분기   사원수

---------------

1      3

2      1

3      2

4      0


------------ 결과 메일로 전송하기


오후 수업 시작


데이터 베이스 정규화

Join : 두개 이상의 테이블로부터 다양한 방법으로 요구조건을 만족하는 데이터르 조회하는 것을 조인(JOIN)이라 한다.

JOIN은 행과 행을 합친다.

JOIN은 4가지 종류의 종류가 있다.

- CROSS JOIN : 한개 이상의 테이블 조인 시 조인 조건을 생략한 조인을 말한다. 조인의 시작, 과부하를 일으킬수 있다.(이론상 존재하는 조인)

- INNER JOIN : 가장 일반적인 조인으로 natural join이라고한다. 부모와 자신의 관계를 가진 2개 이상의 테이블에서 공통 되는 칼럼을 비교하여 만족하는 행과 행을 조인

Non-Equi join : 범위를 가지고 비교할때 사용한다.

ON 구문에서 조건을 잘 구분해줘야 한다.


OUTER JOIN : INNER JOIN 시 행이 조인 조건을 만족하지 않을 검색되지않는다. 조언 조건을 만족하지 않는 행들도 검색에 포함하고자 할 경우 사용한다. 조인 시킬 값이 없는 조인 쪽에 (+) 기호를 위치시킨다.

아래와 같은 3가지 방법이 있다.

LEFT - 조인 조건이 안맞아도 무조건 나오게 한다.

RIGHT - 우측

FULL OUTER - 양쪽다 


Self join - 같은 테이블에 또다른 별칠을 부여해서 다른테이블처럼 조인하는것

FROM에서 같은 테이블을 기준으로 검색한다.


Sub Query : 서브쿼리에서 검색한 결과를 메인 쿼리에 전달하여 새로운 결과 검색시 사용

()로 구분하여 사용한다.

동적으로 필요한부분을 모두 사용할 수 있다.


단일행 Subquery : =, <, >, <=, >=, <>

복수행 Subquery : IN, ANY, ALL









'JAVA 계열 > 자바 & 안드로이드 교육' 카테고리의 다른 글

9월 1주차 1일 (9주)  (0) 2015.08.31
8월 4주차 5일 (8주)  (0) 2015.08.28
8월 4주차 3일 (8주)  (0) 2015.08.26
8월 4주차 2일 (8주)  (0) 2015.08.25
8월 4주차 1일 (8주)  (0) 2015.08.24
Posted by moyaiori
,

데이터 베이스 시작!!


데이터베이스의 정의 - 기업이나 기관의 사용자 또는 응용프로그램들이 공동으로 사용할 수 있도록 통합 저장된 "데이터들의 집합"을 의미한다. 이러한 DB를관리하는 DBMS(데이터베이스 관리시스템)이라 한다.


데이터끼리 연관성을 가지고 중복된데이터가없고 안전하며 영속적으로 관리 되어야한다.


 -> 대량의 데이터의 집합 = DB(데이터베이스)


자바개발자의 필요 기술 3가지

자바언어, 데이터베이스(SQL), 유닉스


Releation(관계형) DBMS의 특징

2차원 테이블표를 이용하며 테이블간의 관계를 통해 데이터를 조작화한다.

데이터 무결성, 트랜잭션 처리등의 기본적 기능이 우수

SQL(Structured Query Language)를 사용한 데이터 접근



표 - Relation

행 - Row, 레코드

열 - Columm, 속성(사원번호, 사원명, 직급, 급여 등)

DB에서의 null = 필드값이 입력되지않았음을 나타냄


SE, EE, XE 버전이있는대 수업에는 XE버전으로 수업한다.

http://www.oracle.com/technetwork/database/database-technologies/express-edition/downloads/index.html 

오라클 XE 다운로드 경로


Run SQL Command Line을 통해서 SQL 접속


connect sys/비밀번호 as sysdba

데이터 베이스 연결

sys : 최상위 계정


 - 오라클 서버 연결하기 

1. CUI로 연결

2. GUI로 연결

3. 웹()에서 연결


 - 테이블을 분리해서 관리하는 이유

유지보수할때 어려워진다.

하나의 테이블에 다 넣게되면 차후에 변경이 생기면 다수의 값을 수정해야된다.


기본적으로 대소문자를 구분하지않는다.

하지만 키워드류는 대문자를 쓰는것이 관례

식별자(테이블명, 컬럼명등)는 소문자를 사용하도록 권장한다.


문자든 문자열이든 ' ' 안에 담아서 입력한다.

SQL에서는 " "는 별칭을 쓸때 사용한다.


SELECT문

특정 컬럼명에 대해 별칭을 부여할 수 있다.

AS를 이용하여 부여, 공백을 두고 부여, ""를 사용하여 부여

""를 사용했을시 소문자로도 나오게 한다.

특수문자가 들어갈시에도 필요하다.


DISTINCT는 중복된 데이터를 제거하고 가져온다.


WHERE은 검색조건을 제시하여 만족되는 행만 출력한다.


in 연산자는 or를 가지고할수있찌만 속도가 느리기때문에 in을 쓰는것을 권장한다.


SQL에서의 NULL이란

진짜 값이 없다는뜻이 아니다 값이 있긴있다. 값이 없다는것을 나타내는 값(블랙홀)

우리가 상상할수없는 범주의 큰값(무한대)

SQL에서 WHERE을 사용할때 안에있는 조건식이 TRUE인경우 검색결과에 나타낸다

즉 0=0과같은 것도 가능하다. 반대도 가능하다.


select문에서 가장 먼저 시작되는것은 FROM 가장 마지막은 ORDER BY이다.


행에 대한 조건은 WHERE

그룹에 대한 조건은 GROUP BY, HAVING


toad를 통해 GUI환경에서 SQL 접근


Oracle 함수 알아보기

문자열 처리 함수

dual - 가상테이블



















'JAVA 계열 > 자바 & 안드로이드 교육' 카테고리의 다른 글

8월 4주차 5일 (8주)  (0) 2015.08.28
8월 4주차 4일 (8주)  (0) 2015.08.27
8월 4주차 2일 (8주)  (0) 2015.08.25
8월 4주차 1일 (8주)  (0) 2015.08.24
8월 3주차 1일 (7주)  (0) 2015.08.18
Posted by moyaiori
,

프로젝트 마무리 / 오전 발표 / 오후 휴식 이후 1시간 수업


TCP/IP C/S 채팅 프로그램

소켓을 이용하여 스트림을 연결한 통신 프로그램


예제소스 2가지


1. 객체스트림 - 효율이 안좋기때문에 로컬(내부) 네트워크에서 사용할시에만 쓴다.

Serializable 를 사용하여 마크 해준다.(표시)


2. UDP - DatagramSocket : TCP의 소켓과 같은 역할

DatagramPacket : 우편물같은 역할

receive : 우편물들을 보관하는 보관소



'JAVA 계열 > 자바 & 안드로이드 교육' 카테고리의 다른 글

8월 4주차 4일 (8주)  (0) 2015.08.27
8월 4주차 3일 (8주)  (0) 2015.08.26
8월 4주차 1일 (8주)  (0) 2015.08.24
8월 3주차 1일 (7주)  (0) 2015.08.18
8월 3주차 2일 (7주)  (0) 2015.08.18
Posted by moyaiori
,

8월 3주차 1,2,3,4,5, 토, 일 프로젝트 진행중



'JAVA 계열 > 자바 & 안드로이드 교육' 카테고리의 다른 글

8월 4주차 3일 (8주)  (0) 2015.08.26
8월 4주차 2일 (8주)  (0) 2015.08.25
8월 3주차 1일 (7주)  (0) 2015.08.18
8월 3주차 2일 (7주)  (0) 2015.08.18
8월 2주차 4일 (6주)  (0) 2015.08.13
Posted by moyaiori
,

창업캠프 참여로 결석



기존 대기방 리스트 보내기 예제 

'JAVA 계열 > 자바 & 안드로이드 교육' 카테고리의 다른 글

8월 4주차 2일 (8주)  (0) 2015.08.25
8월 4주차 1일 (8주)  (0) 2015.08.24
8월 3주차 2일 (7주)  (0) 2015.08.18
8월 2주차 4일 (6주)  (0) 2015.08.13
8월 2주차 3일 (6주)  (0) 2015.08.12
Posted by moyaiori
,

채팅방 팀프로젝트 2일차


'JAVA 계열 > 자바 & 안드로이드 교육' 카테고리의 다른 글

8월 4주차 1일 (8주)  (0) 2015.08.24
8월 3주차 1일 (7주)  (0) 2015.08.18
8월 2주차 4일 (6주)  (0) 2015.08.13
8월 2주차 3일 (6주)  (0) 2015.08.12
8월 2주차 2일 (6주)  (0) 2015.08.11
Posted by moyaiori
,

HTTP 요청 메시지의 구성

-- 요청메시지 구조

- Request 요청라인 : CRLF, 요청방식(get, post), http버전 과같은 정보를 보낸다.

- 헤더 : 구분자 ":"를 사용한다, 해더가 끝나면 \r\n\r\n을 써준다.

- Entity body : post 요청방식시 파라미터로 보낸다, 구분자로 "&"를 사용한다. 키=값 형식으로 파라미터를 보낸다.


-- 응답메시지 구조

- Response 상태 라인 : 상태(status) 200, 301, 400, 404 등을 나타냄, 뒤에 간단한 메시지를 나타낸다.

- 해더 : 파리미터 값들

- Data : 랜더링되는 데이터들 


프로젝트 : 채팅방 구현하기

차후 프로젝트시에 서버 프로젝트와 클라이언트 프로젝트로 나뉜다.


다양한 서버와의 통신을 위해 사용자정의 프로토콜을 설계하여 사용하여야한다.










'JAVA 계열 > 자바 & 안드로이드 교육' 카테고리의 다른 글

8월 3주차 1일 (7주)  (0) 2015.08.18
8월 3주차 2일 (7주)  (0) 2015.08.18
8월 2주차 3일 (6주)  (0) 2015.08.12
8월 2주차 2일 (6주)  (0) 2015.08.11
8월 2주차 1일 (6주)  (0) 2015.08.10
Posted by moyaiori
,

네트워크! 시작!!


- TCP/IP 표준 모델

Application Layer(클라이언트) - 응용프로그램, HTTP, FTP, SMTP, POP3등이 해당된다.

Transfer Layer(운영체제) - 데이터를 패킷화시킨다.(잘개쪼갠다), 패킷에 해더를 추가한다. 해더에는 인덱스와 포트를 기록된다. 패킷화 시키는 소프트웨어이다. 대표적인 프로토콜로 TCP, UDP가 있다. 

Network Layer(운영체제) - 어디로 가야할지(IP)정보를 기록한 해더를 추가한다.

DataLine Layer(랜카드) - 비트열처리

Physical Layer(랜카드) - 비트를 전기신호로 변환해준다.


전송계층에 연결하기위한 객체 "socket"이 필요하다


응용계층에서 사용하는 응용 프로토콜(http, ftp, smtp, pop3등)이라고 부른다.


-  TCP/UDP 프로토콜 특징

TCP - 신뢰할수 있는 연결 지향 스트림 통신 프로토콜, 수신자에게 바이트가 도착하는것을 책임진다. 전화와 비슷하다.

UDP - 신뢰할수없는 비 연결지향 데이터그램 통신 프로토콜, 수신자에게 바이트를 보내고 연결은 마친다. 우편물과 비슷하다. 장점은 속도가 빠르다. 동영상 스트리밍을 udp로 만들어진다. 


- TCP/IP 기반 자바 네트워크 프로그래밍 절차

1. IP주소지정(InetAddress클래스)

2. TCP로 연결(Socket클래스)

3. 소켓을 하용하여 스트림 생성

4. 스트림을 통한 데이터의 교환


- HTTP(Hyper Text Transfer Protocal) 소개

TCP/IP 기반 대표적인 응용 프로토콜의 하나로 웹 클라이언트(브라우저)와 웹 서버가 상호 통신하기 위해 사용하는 하이퍼텍스트(html 텍스트) 전송규약이다.

구조화된 텍스트 데이터를 송수신한다.

웹 서버와 웹 클라이언트 간에 연결상태를 유지하지않는 특징을 가진다.

웹(World Wide Web) - 인터넷 상에서 TCP/IP 기반 HTTP 응용 프로토콜을 준수하는 웹 클라이언트와 웹 서버 간의 데이터 통신





'JAVA 계열 > 자바 & 안드로이드 교육' 카테고리의 다른 글

8월 3주차 2일 (7주)  (0) 2015.08.18
8월 2주차 4일 (6주)  (0) 2015.08.13
8월 2주차 2일 (6주)  (0) 2015.08.11
8월 2주차 1일 (6주)  (0) 2015.08.10
8월 1주차 5일 (5주)  (0) 2015.08.07
Posted by moyaiori
,

객체 스트림!!


3가지 스트림중에 하나


메모상의 자바 객체(Object)를 파일 또는 네트워크로 쓰거나 읽을 수 있도록 지원하는 바이트 스트림 클래스이다.

내부적으로는 바이트 스트림 클래스이다.


바이트/문자 스트림으로 데이터를 저장하거나 송수신 할려면 데이터파일포맷(네트워크 프로토콜) 설계에 시간이 필요하다. 


Serializable 인터페이스를 구현한 모든 객체가 가능하다. Serializable은 아무것도 구현되어있지않은 마킹인터페이스이다. 


표준 API의 대부분은 Serializable이 implement되어있기때문에 파일로 저장할 수 있다.


입출력시 객체가 내부적으로 참조되는객체들(상속, hsa a) 역시 함께 전송된다. 하지만 객체가 가지고있는 메서드는 입출력되지 않는다. 순수하게 속성만 저장된다.


- 객체 직렬화(마샬링 : Marshaling)

객체를 바이트스트림으로 입출력할 수 있도록 연속적인 바이트 흐름으로 변환하는 과정이다. 마샬링을 담당하는 ObjectOutputStream에 의해 지원된다.

자바 기본자료형(7가지), 자바객체(java.io.Serializable) 인터페이스를 구현한 객체만 지원한다.

instance of 로 구분하여 파일로 저장할때 사용한다.

위 과정을 반대로 하는것을 객체 역직렬화(언마샬링 : UnMarshaling, ObjectInputStream에 의해 지원된다.


객체의 목록을 저장할때는 콜렉션 객체에 넣어서 저장하는 형태로 사용한다.


객체 속성중 중요한속석(비밀번호) 직렬화 대상에서 제외할 경우 transiect를 사용 


- 정규 표현식(Regular Expression)

정규표현식이란 일정한 패턴(규칙)을 가진 문자열을 표현하는 형식(구문)을 말한다.

메타문자의 조합(패턴)으로 다양한 문자열을 표현할 수 있다.


POSIX와 JAVA에서의 문자클래스는 다르게사용한다.

\p 는 POSIX를 나타낸다.


'JAVA 계열 > 자바 & 안드로이드 교육' 카테고리의 다른 글

8월 2주차 4일 (6주)  (0) 2015.08.13
8월 2주차 3일 (6주)  (0) 2015.08.12
8월 2주차 1일 (6주)  (0) 2015.08.10
8월 1주차 5일 (5주)  (0) 2015.08.07
8월 1주차 4일 (5주)  (0) 2015.08.06
Posted by moyaiori
,