Baixe o app para aproveitar ainda mais
Prévia do material em texto
UNIVERSIDADE PAULISTA – UNIP EaD CST ANÁLISE E DESENVOLVIMENTO DE SISTEMAS: Projeto Integrado Multidisciplinar JOÃO VITOR MARTINS NASCIMENTO – RA: 1964100 PROJETO INTEGRADO MULTIDISCIPLINAR VIII: Codificação em C# do mecanismo de acesso a um trecho de banco de dados POLO FRUTAL 2020 JOÃO VITOR MARTINS NASCIMENTO – RA: 1964100 PROJETO INTEGRADO MULTIDISCIPLINAR VIII: Codificação em C# do mecanismo de acesso a um trecho de banco de dados Projeto Integrado Multidisciplinar para obtenção do título de graduação em Análise e Desenvolvimento de Sistemas apresentado à Universidade Paulista – UNIP EaD. Orientador(a): Prof. Cassiano Gunji POLO FRUTAL 2020 RESUMO O Projeto Integrado Multidisciplinar VII tem por objetivo utilizar os conhecimentos adquiridos nas aulas realizadas na forma prática de aprendizado, abrangendo todas as disciplinas cursadas no bimestre e interligando-as, sendo elas: Programação Orientada a Objetos II, Desenvolvimento de Software para a Internet e Tópicos Especiais de Programação Orientada a Objetos, apresentando conforme o Manual do PIM VII a codificação do mecanismo de acesso a um trecho de banco de dados, assim como os protótipos de interface gráfica com o usuário em ASP .Net e Android; fomentando assim o hábito de executar projetos envolvendo múltiplas escolhas; desenvolvendo a capacidade de identificar necessidades e propor soluções técnicas; elencando, argumentando e justificando a respeito de metodologias referentes as disciplinas acima citadas aplicando as normas da ABNT para a produção de trabalhos acadêmicos. Palavras-chave: Programação orientada a objetos. Banco de dados. Desenvolvimento de software. ABSTRACT The Integrated Multidisciplinary Project VII aims to use the knowledge acquired in classes carried out in the form of learning practice, covering all disciplines taken in the two months and interconnecting them, namely: Object Oriented Programming II, Software Development for the Internet and Special Object Oriented Programming Topics, according to the PIM VII Manual following the mechanism for accessing a database section, as well as the prototypes of graphical user interface in ASP .Net and Android; thus fostering the habit of executing projects involving various choices; developing the ability to identify needs and propose technical solutions; listing, arguing and justifying regarding methodologies referring to the disciplines mentioned above applying the ABNT rules for the production of academic papers. Keywords: Object-oriented programming. Database. Software development. SUMÁRIO 1 INTRODUÇÃO ................................................................................................. 5 2 O BANCO DE DADOS ..................................................................................... 6 2.1 Criação do banco de dados e tabelas ........................................................... 6 3 INTERFACES GRÁFICAS ............................................................................... 9 4 PROGRAMAÇÃO ORIENTADA A OBJETOS COM LINGUAGEM C# ......... 11 CONCLUSÃO ........................................................................................................... 12 REFERÊNCIAS ......................................................................................................... 13 ANEXO – CÓDIGO .ASPX ...................................................................................... 14 ANEXO B – CÓDIGO EM C# .................................................................................... 17 5 1 INTRODUÇÃO Com o avanço da tecnologia no mundo contemporâneo as empresas sejam elas de grande, médio ou pequeno porte assim como instituições de ensino e outras entidades públicas e privadas utilizam de software no gerenciamento das mais diversas atividades como forma de auxílio, é como se fosse uma ferramenta específica para tal e a grande vantagem é justamente essa. As múltiplas linguagens de programação também passaram por transformações ao longo do tempo e foram evoluídas ao ponto de “conversarem” entre si e assim oferecer mais suporte ao desenvolvimento de aplicações. Algumas dessas relações está mencionada neste projeto; isso porque o trecho do sistema que abaixo será descrito utiliza para seu bom funcionamento, banco dados para guardar informações que poderão ser requisitadas em ações futuras, e opera na versão de aplicativo para internet, ou seja, dentro dessa aplicação também é implementada tags que compõe o HTML. O objetivo deste trabalho é apresentar um trecho de um banco de dados que é manipulado por classes utilizando a linguagem C#, irá constar nele os protótipos das telas de acesso às operações crud. Tais atividades foram realizadas utilizando as ferramentas de SGBD (Sistema de Gerenciamento de Banco de dados) MySql Workbench da Oracle Corporation e as IDE’s (Ambiente de Desenvolvimento Integrado) Visual Studio 2015 Community para o desenvolvimento de aplicativo para internet e Visual Studio 2019 para desenvolvimento de aplicativo para Android ambas da Microsoft. O trecho é responsável apenas por incluir, excluir e alterar dados no banco, demais operações deveram ser prosseguidas por outros setores para seus devidos fins que não serão aqui descritas. Para exemplificação do funcionamento do trecho de sistema serão incorporadas figuras representativas de cada passo; atenta-se que em algumas poderão estar representado partes do código responsável pela execução do mesmo. A sequência de tópicos deste trabalho foi definida pela sequência dos passos no desenvolvimento do trecho, sendo inicialmente criado o banco dados, tabelas e comandos indispensáveis ao sistema que o compõe, criação das interfaces gráficas que o usuário se deparará para a inserção de novos registros no sistema e, por fim, a codificação de back-end constando as classes para o sistema conseguir entender a necessidade do usuário, seja para incluir registros, alterá-los ou também excluí- los. 6 2 O BANCO DE DADOS 2.1 Criação do banco de dados e tabelas A criação das tabelas segue os padrões definidos no Manual do PIM VIII que deveriam constar cinco tabelas iniciais para o tratamento das inserções dos registros. Para criação do banco de dados foi necessário especificar um nome para esse database, o qual foi nomeado como “bancodedados”. A nomeação é de extrema importância, pois é através dela que o banco fornece informações originárias dali para outro fim, à exemplo temos a conexão com o Visual Studio que por sua vez requisita também o local do servidor, o nome de usuário e senha que é definida pelo usuário no momento da instalação do SGBD. Figura 1 – Mapa de tabelas do banco de dados Fonte: João Vitor (2020) A Figura 1 acima representa um mapa das tabelas gerado pelo Reverse Enginer do MySql Workbench 8.0 que compõem o banco de dados, a principal delas é a tabela denominada “pessoa”, pois é para ela que todas as outras existem, diretamente ou indiretamente todas estão ligadas à ela, isso porque a tabela “pessoa” recebe o id_pessoa o qual será requisitado para futuras inserções, 7 alterações e exclusões de registro de pessoas funcionando assim como um caminho para encontrar certo registro. A seguir mais detalhes da criação das tabelas: Figura 2 - Tabelas primeira parte Fonte: João Vitor (2020) A Figura 2 representa a criação das tabelas “ENDERECO e PESSOA”, primeiramente utilizamos o comando “use bancodedados;” para referenciar a database criada determinando que as tabelas serão inseridas nesse banco, em seguida começamos a montagem das tabelas.O comando “create table ENDERECO” cria a tabela “ENDERECO” ao mesmo tempo que a nomeia. Dentro desse comando, entre parênteses, são informados as variáveis e definições dos parâmetros, temos nessa tabela sete variáveis sendo elas: id_endereco do tipo int, que não aceita valores nulos e é incrementada automaticamente conforme forem inseridos novos endereços no banco: usado como referência para encontrar o endereço de certa pessoa no banco de dados; logradouro: do tipo varchar como limite máximo de duzentos e cinquenta e seis caracteres e que não aceita valores nulos, usada para guardar informação da rua, avenida, praça, etc. do endereço da pessoa; numero_casa : do tipo int que não aceita valores nulos e que é usada para representar o número da casa da pessoa; 8 cep: do tipo int que não aceita valores nulos, usada para representar o cep que identifica a localidade do endereço da pessoa; bairro: do tipo varchar com limite máximo de cinquenta caracteres e que não aceita valores nulos, representa o bairro onde a pessoa mora; cidade: do tipo varchar com limite máximo de trinta caracteres e que não aceita valores nulos, representa a cidade onde a pessoa reside; estado: do tipo varchar com limite de vinte caracteres e que não aceita valores nulos, usada para representar a unidade federativa do município ao qual a pessoa reside. Por fim temos nesta tabela um parâmetro que define a variável id_endereco como sendo uma chave primária (“primary key (id_endereco)”). A segunda tabela no exemplo é a tabela “pessoa” que contém quatro variáveis, sendo elas; id_pessoa: do tipo int que não aceita valores nulos e que é incrementada automaticamente conforme forem inseridas novas pessoas no banco de dados; nome: do tipo varchar com limite máximo de duzentos e cinquenta e seis caracteres e que não aceita valores nulos, usada para representar o nome que a pessoa tem; cpf: do tipo bigint que não aceita valores nulos, representa a numeração de determinada pessoa no cadastro de pessoas físicas da Receita Federal, essa numeração geralmente é utilizada para conceder buscas à uma determinada pessoa. Por fim temos a variável endereço_pessoa: do tipo int que faz uma referência a tabela ENDERECO através da variável id_endereco e acessa todos os valores daquela tabela à critério do desenvolvedor. Figura 3 - Tabelas segunda parte Fonte: João Vitor (2020) 9 A Figura 3 apresenta a criação de três tabelas, sendo elas TELEFONE_TIPO, TELEFONE e PESSOA_TELEFONE, essas tabelas estão todas interligadas a fim de formar um só resultado para obter as especificações de contato via telefone com a pessoa em questão. As tabelas estão em ordem de inserção, sendo assim é necessário que se inclua primeiramente o tipo de telefone para assim inserir os demais campos que especificam o contato da pessoa. Ou você faz certo da primeira vez ou faz tudo de novo. Se uma equipe de software buscar a qualidade em todas as suas atividades, a quantidade de retrabalho será reduzida. Isso resulta em custos menores e, mais importante, menor tempo para disponibilização do produto no mercado. (ZANIN et al., 2018) Na primeira tabela temos apenas as variáveis de id_tipotelefone: que não aceita valore nulos, porém é incrementada automaticamente conforme forem sendo inseridos novos tipos de telefone e tipo: que não aceita valore nulos e é do tipo varchar com limite máximo de dez caracteres. Na segunda temos as variáveis, id_telefone do tipo int incrementada automaticamente conforme novos registros de números de telefone, temos também a variável numero_telefone, ddd e tipo_telefone, ambas do tipo int e que não aceitam valores nulos.; a variável tipo_telefone é uma chave estrangeira que faz referência à id_tipo telefone da tabela TELEFONE_TIPO, e requere os valores por ela inseridos. Por último temos a tabela PESSOA_TELEFONE que na verdade é uma tabela associativa para que o banco de dados intenda que uma pessoa possa conter vários telefones e um telefone possa pertencer à várias pessoas; para isso as duas variáveis que compõem essa tabela precisam ser identificadas como chaves primárias e chaves estrangeiras ao mesmo tempo. 3 INTERFACES GRÁFICAS A seguir serão apresentadas as figuras que mostram o resultado final do código aspx gerado no app Visual Studio. A inserção de dados bem como o funcionamento do sistema não é de caráter deste projeto. Sendo necessário adicionar comandos aos quais darão ao requisitante seu devido fim. Veja a compilação de figuras que resulta na interface gráfica do trecho: 10 Figura 4 - Protótipo da tela no ambiente de desenvolvimento integrado Fonte: João Vitor (2020) Figura 5 - Protótipo da tela no navegador Fonte: João Vitor (2020) 11 As Figuras 4 e 5 demonstram a tela exibida ao usuário para inserção de registros no banco de dados através da interface gerada no app. Visual Studio, a inserção de dados é feita utilizando os campos de texto e inseridas após um clique no botão inserir, ao inserir a pessoa ela constará no gridview e a partir daí o usuário conseguirá efetuar as alterações no registro bem como exclusão do mesmo. Foi necessária a demonstração das duas telas, pois como não há dados inseridos no banco ainda, o gridview por padrão não aparecerá no navegador. 4 PROGRAMAÇÃO ORIENTADA A OBJETOS COM LINGUAGEM C# O código do mecanismo de acesso ao banco de dados está em anexo, Anexo B. 12 CONCLUSÃO Podemos concluir deste projeto, que a programação orientada a objetos exige conhecimento dos diversos tipos de variáveis para compatibilidade de dados e otimização do sistema no resultado final bem como das diversas bibliotecas existentes disponíveis para serem usadas no ambiente de desenvolvimento as quais nem todas estão por padrão. Há diversos sistemas de gerenciamento de banco de dados disponíveis para download existentes na internet, porém no momento da escolha devemos nos atentar aos detalhes que fazem toda a diferença em programação, como por exemplo a forma de passar instruções. Hoje a linguagem mais utilizada para os comandos em banco de dados é a SQL que é utilizada nos principais SGBD’s como o MySQL, SQLServer, PostgreeSql, NoSql. Essa seria a grande vantagem, pois universalizar um trecho de sistema deve ser a meta de qualquer desenvolvedor, pois dessa forma facilita a ampliação do software pelas outras equipes tendo em vista que há maior número de profissionais capacitados para isso. 13 REFERÊNCIAS DEITEL, Harvey; DEITEL, Paul; STEINBUHLER, Kate. C#: como programar. Londres: Pearson Universidades, 2003. 1200 p. HEUSER, Carlos Alberto. Projeto de Banco de Dados. 6. ed. Porto Alegre: Bookman, 2008. 282 p. TONSIG, Sergio Luiz. MySQL - Aprendendo na Prática. Rio de Janeiro: Ciência Moderna Edit, 2006. 304 p. ZANIN, Aline et al. Qualidade de Software. Porto Alegre: Sagah, 2018. 112 p. Revisão Técnica de Maria de Fátima Webber do Prado Lima. 14 ANEXO – CÓDIGO .ASPX <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <p> Texte de Conexão com Banco de Dados: <asp:Label ID="Label1" runat="server" BackColor="#FFFF99" Text="Carregando..."></asp:Label> </p> <p> </p> <p> Nome:<asp:TextBox ID="TextBox1" runat="server" style="margin-left: 32px" Width="418px"></asp:TextBox> </p> <p> CPF:<asp:TextBox ID="TextBox2"runat="server" style="margin-left: 42px" Width="331px"></asp:TextBox> </p> <p> Logradouro:<asp:TextBox ID="TextBox3" runat="server" Width="416px"></asp:TextBox> </p> <p> Nº:<asp:TextBox ID="TextBox4" runat="server" style="margin-left: 55px" Width="83px"></asp:TextBox> </p> <p> CEP:<asp:TextBox ID="TextBox5" runat="server" style="margin-left: 42px" Width="218px"></asp:TextBox> </p> 15 <p> Bairro:<asp:TextBox ID="TextBox6" runat="server" style="margin-left: 33px" Width="362px"></asp:TextBox> </p> <p> Cidade:<asp:TextBox ID="TextBox7" runat="server" style="margin-left: 28px" Width="360px"></asp:TextBox> </p> <p> Estado:<asp:TextBox ID="TextBox8" runat="server" style="margin-left: 30px" Width="360px"></asp:TextBox> </p> <p> DDD:<asp:TextBox ID="TextBox9" runat="server" style="margin-left: 39px" Width="44px"></asp:TextBox> </p> <p> Telefone:<asp:TextBox ID="TextBox10" runat="server" style="margin-left: 19px" Width="133px"></asp:TextBox> </p> <p> Tipo:<asp:TextBox ID="TextBox11" runat="server" style="margin-left: 42px" Width="162px"></asp:TextBox> </p> <p> <asp:Button ID="Button1" runat="server" Text="Incluir" /> </p> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" BackColor="#CCCCCC" BorderColor="#999999" BorderStyle="Solid" BorderWidth="3px" CaptionAlign="Bottom" CellPadding="4" CellSpacing="2" ClientIDMode="Static" EmptyDataText="Sem registros para exibir." ForeColor="Black" ShowFooter="True" ShowHeaderWhenEmpty="True" Width="812px" > <Columns> <asp:CommandField ShowDeleteButton="True" /> <asp:CommandField ButtonType="Button" ShowEditButton="True" /> <asp:CheckBoxField HeaderText="Pessoa"> <ItemStyle Wrap="False" /> 16 </asp:CheckBoxField> <asp:CheckBoxField HeaderText="CPF" /> <asp:CheckBoxField HeaderText="Logradouro" /> <asp:CheckBoxField HeaderText="Nº" /> <asp:CheckBoxField HeaderText="Bairro" /> <asp:CheckBoxField HeaderText="Cidade" /> <asp:CheckBoxField HeaderText="CEP" /> <asp:CheckBoxField HeaderText="Estado" /> <asp:CheckBoxField HeaderText="DDD" /> <asp:CheckBoxField HeaderText="Telefone" /> <asp:CheckBoxField HeaderText="Tipo" /> </Columns> <FooterStyle BackColor="#CCCCCC" /> <HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" /> <PagerStyle BackColor="#CCCCCC" ForeColor="Black" HorizontalAlign="Left" /> <RowStyle BackColor="White" /> <SelectedRowStyle BackColor="#000099" Font-Bold="True" ForeColor="White" /> <SortedAscendingCellStyle BackColor="#F1F1F1" /> <SortedAscendingHeaderStyle BackColor="Gray" /> <SortedDescendingCellStyle BackColor="#CAC9C9" /> <SortedDescendingHeaderStyle BackColor="#383838" /> </asp:GridView> </form> </body> </html> 17 ANEXO B – CÓDIGO EM C# using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using MySql.Data.MySqlClient; using MySql.Data; using System.Data; public partial class _Default : System.Web.UI.Page { MySqlConnection con = new MySqlConnection("server=localhost; Uid=root; Password=brasil3423; Database=bancodedados; Port=3306"); private object tipo; protected void Page_Load(object sender, EventArgs e) { try { MySqlConnection con = new MySqlConnection("server=localhost; Uid=root; Password=brasil3423; Database=bancodedados; Port=3306"); con.Open(); Label1.BackColor = System.Drawing.Color.Green; Label1.Text = "Ok !"; con.Close(); } catch { Label1.BackColor = System.Drawing.Color.Red; Label1.Text = "Erro !"; } } public class Telefone_Tipo { protected int id_tipotelefone; public string tipo; public Telefone_Tipo(int id_tipotelefone, String tipo) { this.id_tipotelefone = id_tipotelefone; this.tipo = "Celular"; } } public class Telefone { protected int id_telefone; public int numero_telefone; public int ddd; 18 public Telefone(int id_telefone, int numero_telefone, int ddd) { this.id_telefone = id_telefone; this.numero_telefone = numero_telefone; this.ddd = ddd; } } public class Endereco { protected int id_endereco; private string logradouro; private int numero; private int cep; private string bairro; private string cidade; private string estado; public Endereco(int id_endereco, String logradouro, int numero, int cep, String bairro, String cidade, String estado) { this.id_endereco = id_endereco; this.logradouro = logradouro; this.numero = numero; this.cep = cep; this.bairro = bairro; this.cidade = cidade; this.estado = estado; } public class Pessoa { protected int id_pessoa; string nome; long cpf; Endereco endereco_pessoa; } public class Pessoa_DAO { } } 19
Compartilhar